即使字符串長度爲10個字符,我也會收到以下代碼的ArrayIndexOutOfBoundsException
。錯誤發生在代碼printedLine.insert(3, '-');
的第三行。字符串插入方法不適用於非零索引
public class Program1 {
public static void main(String[] args) {
int caseNumber, numberOfCases;
String currentLine;
int lineNumber;
Scanner in = new Scanner(System.in);
numberOfCases = in.nextInt();
String[] phoneNumbers = new String[numberOfCases + 1];
for (caseNumber = 0; caseNumber <= numberOfCases; caseNumber++) {
phoneNumbers[caseNumber] = in.nextLine();
}
for (lineNumber = 0; lineNumber < phoneNumbers.length; lineNumber++) {
currentLine = phoneNumbers[lineNumber];
currentLine = currentLine.replaceAll("-", "");
if (currentLine.length() > 10) {
currentLine = currentLine.substring(0, 10);
}
System.out.println(currentLine);
StringBuffer printedLine = new StringBuffer(currentLine);
printedLine.insert(3, '-');
printedLine.insert(7, '-');
System.out.println(printedLine);
}
}
}
有沒有人知道爲什麼會出現這種情況?
更新:如果我只是打印字符串緩衝區對象,所有值與原始字符串,它是10個字符長。
你能不能給我們輸出的'currentLine'請。另外,'printedLine'是一個StringBuffer對象,而不是'String',因爲你的問題似乎表明你的想法。 – thatidiotguy
'currentLine'長度必須少於4個字符。 – rgettman
在'in.nextInt()'之後添加'in.nextLine();'以消耗'「\ n」'。 –