- Java.lang 包类
- Java.lang - 首页
- Java.lang - Boolean
- Java.lang - Byte
- Java.lang - Character
- Java.lang - Character.Subset
- Java.lang - Character.UnicodeBlock
- Java.lang - Class
- Java.lang - ClassLoader
- Java.lang - Compiler
- Java.lang - Double
- Java.lang - Enum
- Java.lang - Float
- Java.lang - InheritableThreadLocal
- Java.lang - Integer
- Java.lang - Long
- Java.lang - Math
- Java.lang - Number
- Java.lang - Object
- Java.lang - Package
- Java.lang - Process
- Java.lang - ProcessBuilder
- Java.lang - Runtime
- Java.lang - RuntimePermission
- Java.lang - SecurityManager
- Java.lang - Short
- Java.lang - StackTraceElement
- Java.lang - StrictMath
- Java.lang - String
- Java.lang - StringBuffer
- Java.lang - StringBuilder
- Java.lang - System
- Java.lang - Thread
- Java.lang - ThreadGroup
- Java.lang - ThreadLocal
- Java.lang - Throwable
- Java.lang - Void
- Java.lang 包额外内容
- Java.lang - 接口
- Java.lang - 错误
- Java.lang - 异常
- Java.lang 包有用资源
- Java.lang - 有用资源
- Java.lang - 讨论
Java StringBuffer substring() 方法
Java StringBuffer substring() 方法用于从 StringBuffer 对象中检索所需的子序列。子字符串是给定字符串的一小部分。默认情况下,此子字符串从指定的索引开始,并延伸到此序列的末尾。
substring() 方法接受一个整数参数,该参数保存起始索引的值。如果起始索引值为负或大于序列长度,则会抛出异常。
substring() 方法有两个多态变体,它们具有不同的参数,如下面的语法所示。
语法
以下是Java StringBuffer substring() 方法的语法:
public String substring(int start) public String substring(int start, int end)
参数
- start − 这是起始索引(包含)。
- end − 这是结束索引(不包含)。
返回值
此方法返回从起始索引到序列末尾的新字符串。
如果将end值作为参数传递,则此方法返回从起始索引到结束索引的新字符串。
示例:从 StringBuffer 字符串中获取子字符串
如果给定的起始索引值为正数且小于给定序列长度,则 substring() 方法将返回一个新的子字符串。
在下面的程序中,我们使用“Java Language”的值实例化StringBuffer 类。然后,使用substring() 方法,我们尝试从给定序列的指定起始索引 6处检索新的子字符串。
public class SubString { public static void main(String[] args) { //instantiate of the StringBuffer class StringBuffer sb = new StringBuffer("Java Language"); System.out.println("The given string: " + sb); //initialize the start index value int startIndex = 5; System.out.println("The given start index value is: " + startIndex); //using the substring() method System.out.println("The new sub-string is: " + sb.substring(startIndex)); } }
输出
执行上述程序后,将产生以下结果:
The given string: Java Language The given start index value is: 5 The new sub-string is: Language
示例:在从 StringBuffer 字符串中获取子字符串时遇到 StringIndexOutOfBoundsException
如果给定的起始索引值大于序列长度,则 substring() 方法将抛出StringIndexOutOfBoundsException。
在下面的示例中,我们使用“Tutorix”的值创建一个StringBuffer 类的对象。使用substring() 方法,我们尝试从给定序列的指定起始索引 10处检索子字符串,其值大于序列长度。
public class SubString { public static void main(String[] args) { try { //create an object of this class StringBuffer sb = new StringBuffer("Tutorix"); System.out.println("The given string: " + sb); //initialize the start index value int startIndex = 10; System.out.println("The given start index value is: " + startIndex); //using the substring() method System.out.println("The new sub-string is: " + sb.substring(startIndex)); } catch(Exception e) { e.printStackTrace(); System.out.println("Exception: " + e); } } }
输出
以下是上述程序的输出:
The given string: Tutorix The given start index value is: 10 java.lang.StringIndexOutOfBoundsException: Range [10, 7) out of bounds for length 7 at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:55) at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:52) at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:213) at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:210) at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:98) at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckFromToIndex(Preconditions.java:112) at java.base/jdk.internal.util.Preconditions.checkFromToIndex(Preconditions.java:349) at java.base/java.lang.AbstractStringBuilder.substring(AbstractStringBuilder.java:1057) at java.base/java.lang.StringBuffer.substring(StringBuffer.java:525) at java.base/java.lang.StringBuffer.substring(StringBuffer.java:507) at SubString.main(SubString.java:13) Exception: java.lang.StringIndexOutOfBoundsException: Range [10, 7) out of bounds for length 7
示例:在从 StringBuffer 字符串中获取子字符串时遇到 StringIndexOutOfBoundsException
如果给定的起始索引值为负数,则此方法将抛出StringIndexOutOfBoundsException。
在此程序中,我们使用“JavaProgramming”的值实例化StringBuffer 类。然后,使用substring() 方法,我们尝试从给定序列的指定起始索引 -1处检索子字符串。
public class SubString { public static void main(String[] args) { try { //instantiate of the StringBuffer class StringBuffer sb = new StringBuffer("JavaProgramming"); System.out.println("The given string: " + sb); //initialize the start index value int startIndex = -1; System.out.println("The given start index value is: " + startIndex); //using the substring() method System.out.println("The new sub-string is: " + sb.substring(startIndex)); } catch(StringIndexOutOfBoundsException e) { e.printStackTrace(); System.out.println("Exception: " + e); } } }
输出
上述程序产生以下结果:
The given string: JavaProgramming The given start index value is: -1 java.lang.StringIndexOutOfBoundsException: Range [-1, 15) out of bounds for length 15 at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:55) at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:52) at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:213) at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:210) at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:98) at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckFromToIndex(Preconditions.java:112) at java.base/jdk.internal.util.Preconditions.checkFromToIndex(Preconditions.java:349) at java.base/java.lang.AbstractStringBuilder.substring(AbstractStringBuilder.java:1057) at java.base/java.lang.StringBuffer.substring(StringBuffer.java:525) at java.base/java.lang.StringBuffer.substring(StringBuffer.java:507) at SubString.main(SubString.java:13) Exception: java.lang.StringIndexOutOfBoundsException: Range [-1, 15) out of bounds for length 15
示例:从 StringBuffer 字符串中获取子字符串
如果给定的起始索引和结束索引值为正数且小于序列长度,则 substring() 方法将返回新的子字符串。
在此程序中,我们使用“Java Programming Language”的值创建一个StringBuffer 类的对象。然后,使用substring() 方法,我们尝试从给定序列的指定起始索引 5和结束索引 16处检索子字符串。
public class SubString { public static void main(String[] args) { //instantiate of the StringBuffer class StringBuffer sb = new StringBuffer("Java Programming Language"); System.out.println("The given string: " + sb); //initialize the start index and end index values int startIndex = 5; int endIndex = 16; System.out.println("The given start index and end index values are: " + startIndex + " and " + endIndex); //using the substring() method System.out.println("The new sub-string is: " + sb.substring(startIndex, endIndex)); } }
输出
执行上述程序后,将生成以下输出:
The given string: Java Programming Language The given start index and end index values are: 5 and 16 The new sub-string is: Programming