Java教程-Java String getChars()方法
            
            Java String类的getChars()方法将此字符串的内容复制到指定的char数组中。在getChars()方法中传递了四个参数。getChars()方法的语法如下:
语法
public void getChars(int srcBeginIndex, int srcEndIndex, char[] destination, int dstBeginIndex)  参数
int srcBeginIndex:复制字符的起始索引。
int srcEndIndex:复制的最后一个字符后面的索引。
char[] destination:调用getChars()方法的字符串的字符将被复制到的char数组。
int dstEndIndex:表示从哪个位置开始将字符串的字符推入目标数组。
返回值
它不返回任何值。
异常抛出
当以下任何一个或多个条件成立时,该方法会抛出StringIndexOutOfBoundsException异常:
- 如果srcBeginIndex小于零。
 - 如果srcBeginIndex大于srcEndIndex。
 - 如果srcEndIndex大于调用该方法的字符串的大小
 - 如果dstEndIndex小于零。
 - 如果dstEndIndex + (srcEndIndex - srcBeginIndex)大于目标数组的大小。
 
内部实现
getChars()方法的签名或语法如下:
void getChars(char dst[], int dstBegin) {    
        // 将值从 0 复制到 dst - 1  
        System.arraycopy(value, 0, dst, dstBegin, value.length);    
    }  Java String getChars()方法示例
文件名:StringGetCharsExample.java
public class StringGetCharsExample{  
public static void main(String args[]){  
 String str = new String("hello javatpoint how r u");  
      char[] ch = new char[10];  
      try{  
         str.getChars(6, 16, ch, 0);  
         System.out.println(ch);  
      }catch(Exception ex){System.out.println(ex);}  
}}  输出:
javatpointJava String getChars()方法示例2
如果索引值超出数组范围,该方法将抛出异常。让我们看一个示例。
文件名:StringGetCharsExample2.java
public class StringGetCharsExample2 {  
    public static void main(String[] args) {  
        String str = new String("Welcome to Javatpoint");  
        char[] ch  = new char[20];  
        try {  
            str.getChars(1, 26, ch, 0);  
            System.out.println(ch);  
        } catch (Exception e) {  
            System.out.println(e);  
        }  
    }  
}  输出:
java.lang.StringIndexOutOfBoundsException: offset 10, count 14, length 20Java String getChars()方法示例3
如果srcBeginIndex和srcEndIndex的值相同,则getChars()方法不会将任何内容复制到char数组中。这是因为getChars()方法从srcBeginIndex索引复制到srcEndIndex - 1索引。由于srcBeginIndex等于srcEndIndex,因此srcEndIndex - 1小于srcBeginIndex。因此,getChars()方法不复制任何内容。以下示例确认了这一点。
文件名:StringGetCharsExample3.java
public class StringGetCharsExample3   
{  
// 主要方法 
public static void main(String argvs[])  
{  
String str = "Welcome to JavaTpoint!";  
  
// 创建一个大小为 25 的字符集 
char[] chArr = new char[25];    
  
// 开始和结束索引相同 
int srcBeginIndex = 11;  
int srcEndIndex = 11;  
int dstBeginIndex = 2;  
  
try  
{    
// 调用方法 getChars()  
str.getChars(srcBeginIndex, srcEndIndex, chArr, dstBeginIndex);    
System.out.println(chArr);    
}  
catch(Exception excpn)  
{  
System.out.println(excpn);  
}  
System.out.println("The getChars() method prints nothing as start and end indices are equal.");    
}  
}  输出:
The getChars() method prints nothing as start and end indices are equal.