Java中的 StringBuilder getChars() 示例
StringBuilder 类的getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)方法将从 StringBuilder 包含的 String 中的给定 index:srcBegin 开始到 index:srcEnd-1 的字符复制到作为参数传递的 char 数组中发挥函数。
- 字符从 StringBuilder 复制到数组 dst[] 中,从 index:dstBegin 开始,到 index:dstbegin + (srcEnd-srcBegin) – 1 结束。
- 要从 StringBuilder 复制到数组的第一个字符位于索引 srcBegin,而要复制的最后一个字符位于索引 srcEnd-1。
- 要复制的字符总数等于 srcEnd-srcBegin。
句法:
public void getChars(int srcBegin, int srcEnd,
char[] dst, int dstBegin)
参数:此方法接受四个不同的参数:
- srcBegin:表示我们必须开始复制的索引。
- srcEnd:表示我们必须停止复制的索引。
- dst:表示要将数据复制到的数组。
- dstBegin:表示我们开始粘贴复制数据的目标数组的索引。
返回值:此方法不返回任何内容。
异常:如果出现以下情况,此方法将引发StringIndexOutOfBoundsException :
- srcBegin < 0
- dstBegin < 0
- srcBegin > srcEnd
- srcEnd > this.length()
- dstBegin+srcEnd-srcBegin > dst.length
下面的程序演示了 StringBuilder 类的 getChars() 方法:
示例 1:
// Java program to demonstrate
// the getChars() Method.
class GFG {
public static void main(String[] args)
{
// create a StringBuilder object
// with a String pass as parameter
StringBuilder
str
= new StringBuilder("WelcomeGeeks");
// print string
System.out.println("String = "
+ str.toString());
// create a char Array
char[] array = new char[7];
// get char from index 0 to 7
// and store in array start index 0
str.getChars(0, 7, array, 0);
// print char array after operation
System.out.print("Char array contains : ");
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
}
}
输出:
String = WelcomeGeeks
Char array contains : W e l c o m e
示例 2:
// Java program to demonstrate
// the getChars() Method.
import java.util.*;
class GFG {
public static void main(String[] args)
{
// create a StringBuilder object
// with a String pass as parameter
StringBuilder
str
= new StringBuilder("evil dead_01");
// print string
System.out.println("String = "
+ str.toString());
// create a char Array
char[] array = new char[10];
// initialize all character to _(underscore).
Arrays.fill(array, '_');
// get char from index 5 to 9
// and store in array start index 3
str.getChars(5, 9, array, 3);
// print char array after operation
System.out.print("char array contains : ");
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
}
}
输出:
String = evil dead_01
char array contains : _ _ _ d e a d _ _ _
示例 3:演示 StringIndexOutOfBoundException
// Java program to demonstrate
// exception thrown by the getChars() Method.
import java.util.*;
class GFG {
public static void main(String[] args)
{
// create a StringBuilder object
// with a String pass as parameter
StringBuilder
str
= new StringBuilder("evil dead_01");
// create a char Array
char[] array = new char[10];
// initialize all character to _(underscore).
Arrays.fill(array, '_');
try {
// if start is greater then end
str.getChars(5, 2, array, 0);
}
catch (Exception e) {
System.out.println("Exception: " + e);
}
}
}
输出:
Exception: java.lang.StringIndexOutOfBoundsException: srcBegin > srcEnd
参考:
https://docs.oracle.com/javase/10/docs/api/java Java, int, char%5B%5D, int)