java StringOutofBoundsException
当我将n放入while循环时,会出现一个越界异常,如果我将其取出,它就是完美的。稍后我会将数据添加到数组中,但它会为…生成一个错误
String day = date.substring(0, spacePos);
例外情况如下:
线程“main”java中出现异常。lang.StringIndexOutOfBoundsException:字符串索引超出范围:-1 在爪哇。朗,弦。子字符串(未知源) 在地狱世界。main(HelloWorld.java:21)
Scanner userInputScanner = new Scanner(System.in); // I/O Stream
String months[] = {"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec"}; // Months to Compare
int n = userInputScanner.nextInt();
while(n != 0)
{
System.out.print("Enter Data: ");
String date = userInputScanner.nextLine(); // Input and Store Data
String output; // Program Output
int spacePos = date.indexOf(" "); // Data before first space
int lastSpacePos = date.lastIndexOf(" "); // Data after last space
String day = date.substring(0, spacePos); // First String
String month = date .substring(spacePos + 1, lastSpacePos); // Middle String
String year = date.substring(lastSpacePos + 1); // Last String
output = year + "-" + month + "-" + day; // Output new values
System.out.print(output);
}
有人能帮我解决这个错误吗?如果您需要更多数据,请询问
# 1 楼答案
当您使用
int n = userInputScanner.nextInt();
时,会留下一个尾随的新行,它会立即被下一个nextLine()
调用占用。你得到一个空行,因此你的String
调用无效或者