Java 中的子字符串(附带示例)

2025年4月14日 | 阅读 3 分钟

字符串的一部分称为子字符串。换句话说,子字符串是另一个字符串的子集。Java String 类提供了内置的 substring() 方法,该方法使用作为参数传递的索引值从给定字符串中提取子字符串。在 substring() 方法中,startIndex 是包含的,endIndex 是不包含的。

假设字符串是“computer”,则子字符串将是 com、compu、ter 等。

注意:索引从 0 开始。

您可以通过以下两种方法之一从给定的 String 对象获取子字符串:

  1. public String substring(int startIndex)
    此方法返回一个新的 String 对象,其中包含从指定 startIndex(包含)开始的给定字符串的子字符串。当 startIndex 大于字符串长度或小于零时,该方法会抛出 IndexOutOfBoundException。
  2. public String substring(int startIndex, int endIndex)
    此方法返回一个新的 String 对象,其中包含从指定的 startIndex 到 endIndex 的给定字符串的子字符串。当 startIndex 小于零、startIndex 大于 endIndex 或 endIndex 大于字符串长度时,该方法会抛出 IndexOutOfBoundException。

对于 String:

  • startIndex:包含
  • endIndex:不包含

让我们通过以下代码来理解 startIndex 和 endIndex。

在上面的子字符串中,0 指的是第一个字母,2 指的是第二个字母,即 e(因为 end index 是不包含的)。

Java substring() 方法示例

TestSubstring.java

输出

Original String: SachinTendulkar
Substring starting from index 6: Tendulkar
Substring starting from index 0 to 6: Sachin

上面的 Java 程序演示了 **String** 类 **substring()** 方法的变体。startIndex 包含,endIndex 不包含。

使用 String.split() 方法

String 类的 split() 方法可用于从句子中提取子字符串。它接受正则表达式形式的参数。

TestSubstring2.java

输出

[Hello,  My name is Sachin]

在上面的程序中,我们使用了 split() 方法。它接受一个参数 \\.,该参数在句子中查找 a 并将字符串拆分为另一个字符串。它存储在 String 对象 sentences 的数组中。


Java 子字符串选择题

1. 考虑以下代码片段,输出是什么?

  1. Java
  2. 编程
  3. Java P
  4. rogramming
 

答案:b)

解释: Java substring(5) 方法返回从索引 5 开始到末尾的子字符串,即“Programming”。


2. 以下代码的输出是什么?

  1. SubstringExample
  2. SubstringExampl
  3. 子字符串
  4. SubstringExam
 

答案:b)

解释: Java substring(0, str.length() - 1) 返回从索引 0 到比字符串长度少 1 的子字符串,不包括最后一个字符。


3. 如果 str 是“HelloWorld”,那么 str.substring(str.indexOf('W')) 返回什么?

  1. Hello
  2. 世界
  3. W
  4. World
 

答案:b)

解释: str.indexOf('W') 返回 'W' 的索引,从该索引开始的子字符串得到“World”。


4. 如果 substring 方法中的开始索引大于结束索引,则会抛出哪个异常?

  1. NullPointerException
  2. IndexOutOfBoundsException
  3. IllegalArgumentException
  4. StringIndexOutOfBoundsException
 

答案:d)

解释: 如果开始索引大于结束索引,则会抛出 StringIndexOutOfBoundsException。


5. 如果 str 是“Testing”,那么 str.substring(1, 1) 返回什么?

  1. T
  2. e
  3. ""(空字符串)
  4. null
 

答案:c)

解释: Java substring(1, 1) 方法返回一个空字符串,因为开始索引和结束索引相同。