我正在從K & B讀取有關字符串。對於一些額外的知識,我正在閱讀Oracle的教程。我正在從Oracle複製源代碼。String getChars()方法混淆
public class StringDemo {
public static void main(String[] args) {
String palindrome = "Dot saw I was Tod";
int len = palindrome.length();
char[] tempCharArray = new char[len];
char[] charArray = new char[len];
// put original string in an
// array of chars
for (int i = 0; i < len; i++) {
tempCharArray[i] =
palindrome.charAt(i);
}
// reverse array of chars
for (int j = 0; j < len; j++) {
charArray[j] =
tempCharArray[len - 1 - j];
}
String reversePalindrome =
new String(charArray);
System.out.println(reversePalindrome);
//Testing getChars method //1
palindrome.getChars(0, len, tempCharArray, 1);
String tempString = new String(tempCharArray);
System.out.println(tempString);
}
}
我在源代碼中添加了point-1。我不明白getChars方法。當我運行它時,這個程序給我ArrayIndexOutOfBoundsException。這是我在String文檔中閱讀的內容。
公共無效則GetChars(INT srcBegin處,INT srcEnd,炭[] DST,整數 dstBegin)
拋出:IndexOutOfBoundsException - 如果任何下列條件爲真: srcBegin處是負的。 srcBegin處大於srcEnd srcEnd是 大於該字符串dstBegin的長度負 dstBegin +(srcEnd-srcBegin處)比dst.length
什麼是destBegin更大?文檔談論的是什麼抵消。 1是目標數組中的有效偏移量。請幫我解決這個困惑。
謝謝。
你可以添加到你的問題的源和目標字符串?這可能有助於我們澄清它爲什麼會走出界限。 – 2014-09-22 17:31:26
不知道是什麼問題... 1是一個有效的偏移量 – Mzf 2014-09-22 17:31:39
@JasonD源字符串包含在程序中。 – benz 2014-09-22 17:34:44