字符串切片和子字符串方法的区别
JavaScript 是一种动态且最流行的编程语言,可用于客户端和服务器端。JavaScript 用于创建交互式网页。它有许多框架,例如 React JS、Angular JS、Node JS 等。
JavaScript 包含许多内置函数来执行各种任务。有一些函数用于操作字符串。Str.slice 和 str.substring 是两个可以操作字符串的内置函数。尽管这两个函数的功能几乎相同,但它们之间也存在一些差异。
String.slice() 方法
此方法根据指定的索引返回字符串的一部分。slice 方法的语法如下所示:
string.slice (start, end)
此方法有两个参数,即开始和结束。开始指定应从中开始的索引,结束索引指示要返回的字符串的最后一个索引。返回字符串时不包括结束索引。结束不是必需的。如果未指定结束,则从指定的开始索引开始返回整个字符串。这里,索引从“0”开始。
String.substring() 方法
此方法也类似于 slice 方法,并返回字符串的一部分作为新字符串。此方法的语法如下所示:
string.substring (start, end)
这里,开始和结束是两个参数,表示应从哪个索引返回字符串。如果未指定结束索引,则从指定的开始索引返回整个字符串。返回字符串时不包括结束索引。索引从“0”开始。
考虑一个字符串长度为 12 的字符串“Good Morning”。让我们通过以下示例案例了解这些方法的功能:
const greeting = 'Good Morning'
案例 1
如果开始索引是正数,则两种方法都给出相同的输出。
greeting.slice (5) // 'Morning' greeting.substring (5) // 'Morning'
这里,索引取为 5,因此返回从主字符串第 5 个位置开始的字符串。
案例 2
如果给定的索引为负数,则这两种方法会给出不同的输出,如下所示。
greeting.slice (-7) // 'Morning' greeting.substring (-7) // 'Good Morning'
在 slice 方法中,当给出负索引时,它从字符串末尾开始计数,并返回从该索引位置开始的字符串。在 substring 中,任何负数都被视为零。因此,它从索引 0 开始并返回整个字符串。
案例 3
当传递字符串长度时,两种方法都返回一个空字符串。
greeting.slice (12) // '' greeting.substring (12) // ''
案例 4
开始索引大于结束索引
greeting.slice (9, 5) // '' greeting.substring (9, 5) // 'Morn'
Slice 方法返回一个空字符串,而 substring 方法交换这些索引并返回字符串。不包括结束索引。
案例 5
当开始索引和结束索引都为负数时
greeting.slice (-12, -8) // 'Good' greeting.substring (-12, -8) // ''
Slice 方法从字符串末尾计数到指定的索引并返回它。由于两个索引都是负数,并且 substring 方法将它们视为零,则它从零开始并在零结束。因此,返回一个空字符串。
案例 6
当开始索引为负数而结束索引为正数时
greeting.slice (-3, 5) // '' greeting.substring (-3, 5) // 'Good'
这里,由于结束索引位于开始索引之前,因此 slice 方法返回一个空字符串。但是 substring 方法将负索引视为零,并从索引 0 开始到索引 5 结束(不包括它)。因此,它返回“Good”。
案例 7
当开始索引为正数但结束索引为负数时
greeting.slice (5, -3) // 'Morn' greeting.substring (5, -3) // 'Good'
Slice 方法返回“Morn”作为输出,而 substring 方法返回“Good”。Substring 方法将结束索引视为零,并且由于开始索引 (5) 大于结束索引 (0),因此它简单地交换它们的位置 (0,5) 并返回字符串。
Slice 与 Substring 方法
下表突出显示了 slice 方法和 substring 方法之间的重要区别:
Slice 方法 |
Substring 方法 |
|---|---|
它返回字符串的一部分 |
它也用于提取字符串的一部分 |
它允许负索引并返回从后开始计数的字符串 |
如果给出负索引,则将其视为索引 0(零)位置。 |
如果开始索引大于结束索引,则返回一个空字符串 |
如果开始索引大于结束索引,则只需交换它们的位置并根据该位置返回字符串 |
结论
String.slice 和 string.substring 方法用于字符串操作。它们都基于其参数并在某些情况下相似。它们的主要区别之一是当它们具有负值作为其索引时,如上述示例所示。第二个是当开始索引大于结束索引时。
数据结构
网络
关系型数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP