📜  Java中的 StringBuffer getChars() 方法及示例

📅  最后修改于: 2022-05-13 01:54:45.615000             🧑  作者: Mango

Java中的 StringBuffer getChars() 方法及示例

StringBuffer 类getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)方法将从实际序列中的 index:srcBegin 到 index:srcEnd-1 开始的字符复制到作为参数传递给函数的 char 数组中。

  • 字符被复制到 char dst[] 数组中,从 index:dstBegin 开始,到 index:dstbegin + (srcEnd-srcBegin) – 1 结束。
  • 要复制到数组的第一个字符位于索引 srcBegin,而要复制的最后一个字符位于索引 srcEnd-1。
  • 要复制的字符总数等于 srcEnd-srcBegin。

句法:

public void getChars(int srcBegin, int srcEnd, 
                          char[] dst, int dstBegin)

参数:此方法有四个参数:

  • srcBegin : int 值表示要开始复制的索引。
  • srcEnd : int 值表示要停止复制的索引。
  • dst : char 数组表示要将数据复制到的数组。
  • dstBegin : int 值表示要开始粘贴复制数据的 dest 数组的索引。

返回:此方法不返回任何内容。

异常:如果出现以下情况,此方法将引发 StringIndexOutOfBoundsException:

  • srcBegin < 0
  • dstBegin < 0
  • srcBegin > srcEnd
  • srcEnd > this.length()
  • dstBegin+srcEnd-srcBegin > dst.length

下面的程序演示了 StringBuffer 类的 getChars() 方法:

示例 1:

// Java program to demonstrate
// the getChars() Method.
  
import java.util.*;
  
class GFG {
    public static void main(String[] args)
    {
  
        // create a StringBuffer object
        // with a String pass as parameter
        StringBuffer
            str
            = new StringBuffer("Geeks For Geeks");
  
        // print string
        System.out.println("String = "
                           + str.toString());
  
        // create a char Array
        char[] array = new char[15];
  
        // initialize all character to .(dot).
        Arrays.fill(array, '.');
  
        // get char from index 0 to 9
        // and store in array start index 3
        str.getChars(0, 9, array, 1);
  
        // 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 = Geeks For Geeks
char array contains : . G e e k s   F o r . . . . .

示例 2:演示 StringIndexOutOfBoundsException。

// Java program to demonstrate
// exception thrown by the getChars() Method.
  
import java.util.*;
  
class GFG {
    public static void main(String[] args)
    {
  
        // create a StringBuffer object
        // with a String pass as parameter
        StringBuffer
            str
            = new StringBuffer("Contribute Geeks");
  
        // create a char Array
        char[] array = new char[10];
  
        // initialize all character to $(dollar sign).
        Arrays.fill(array, '$');
  
        try {
  
            // if start is greater then end
            str.getChars(2, 1, 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)