Я читаю от 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);
}
}
Я добавил пункт-1 в исходный код. Я искал метод getChars. Когда я запускаю его, эта программа дает мне ArrayIndexOutOfBoundsException. Вот что я читал в документах String.
общественных недействительный GetChars (интермедиат srcBegin, внутр srcEnd, символ [] ДСТ, внутр dstBegin)
Броски: IndexOutOfBoundsException - Если какое-либо из следующих условий: srcBegin отрицателен. srcBegin больше srcEnd srcEnd является больше, чем длина этой строки dstBegin отрицательно dstBegin + (srcEnd-srcBegin) больше, чем dst.length
Что такое destBegin? Какое смещение, о чем говорит документация. 1 - допустимое смещение в целевом массиве. Пожалуйста, помогите мне решить эту путаницу.
Спасибо.
Можете ли вы добавить к своему вопросу строки источника и назначения? Это может помочь нам прояснить, почему это выходит за рамки. –
не уверен, в чем вопрос ... 1 является допустимым смещением – Mzf
Исходная строка @JasonD включена в программу. – benz