Bootstrap

讲解substr函数


substr 是编程中用于截取字符串的一个方法或函数,其功能是从一个字符串中提取出一部分子字符串。不同的编程语言中,这个功能的实现方式也会有不同。在这里我会以几种常见的编程语言为例讲解其使用。


JavaScript 中的 substr

在 JavaScript 中,substr 方法用于从字符串的指定位置开始,提取一定长度的子字符串。

语法

str.substr(start, length)
  • start: 截取开始的位置(索引值,从 0 开始)。
    • 如果 start 是负数,表示从字符串末尾算起的位置。
  • length: 要截取的字符数量(可选)。如果未指定,则一直截取到字符串末尾。

示例

let str = "Hello, world!";
console.log(str.substr(0, 5)); // 输出 "Hello"
console.log(str.substr(7, 5)); // 输出 "world"
console.log(str.substr(-6, 5)); // 输出 "world" (从倒数第 6 个字符开始)

注意

  • 在 ECMAScript 标准中,建议使用 substringslice 替代 substr,因为 substr 已经被标记为废弃(deprecated)。

PHP 中的 substr

在 PHP 中,substr 函数功能为用于从字符串中提取部分内容。

语法

substr(string $string, int $start, ?int $length = null): string
  • $string: 要截取的字符串。
  • $start: 开始位置。
    • 如果 $start 是负数,则从字符串末尾开始计数。
  • $length: 截取的长度(可选)。如果不提供或为 null,截取到字符串末尾。

示例

<?php
$str = "Hello, world!";
echo substr($str, 0, 5); // 输出 "Hello"
echo substr($str, 7, 5); // 输出 "world"
echo substr($str, -6, 5); // 输出 "world"
?>

Python 中的等价方法

Python 中没有直接的 substr 方法,但可以通过字符串切片 (slice) 达到同样的效果。

语法

str[start:end]
  • start: 起始索引(包含)。
  • end: 结束索引(不包含)。
  • 步长: 可选参数,用于指定每隔几个字符取一个。

示例

str = "Hello, world!"
print(str[0:5])  # 输出 "Hello"
print(str[7:12]) # 输出 "world"
print(str[-6:-1]) # 输出 "world" (从倒数第 6 到倒数第 1 个字符,不包含倒数第 1 个)

其他语言

Java

Java 中没有直接的 substr 方法,而是通过 substring 方法实现类似功能。

String str = "Hello, world!";
System.out.println(str.substring(0, 5)); // 输出 "Hello"
System.out.println(str.substring(7, 12)); // 输出 "world"

补充

  • substr 主要按“起始点+长度”来操作,简单明了。
  • 许多语言的替代方法(如 substring 或切片)通常是“起始点+终点”,更适合特定需求。
;