当我运行下面的程序,我得到在第20行的错误,这是我的代码:Java的ArrayIndexOutOfBoundsException异常错误
package J1;
import java.util.Scanner;
public class SpeedLimit {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
int input = keyboard.nextInt();
String[] tab = new String[2];
String output="";
int speed = 0;
while(input!=-1){
int last =0;
for (int i=0; i<input ; i++){
String pair = keyboard.next();
tab = pair.split(" ");
speed = speed + Integer.parseInt(tab[0])*(Integer.parseInt(tab[1])-last);
last = Integer.parseInt(tab[1]);
}
output = output +speed + "miles" + "\n";
speed =0;
input = Integer.parseInt(keyboard.nextLine());
}
System.out.println(output);
}
}
当我运行的代码,我从键盘输入下列输入:
3
20 2
30 6
10 7
2
60 1
30 5
4
15 1
25 2
30 3
10 5
-1
得到这个结果作为输出: 170英里 180英里 90英里
但我GE T,则下面错误,当我运行的代码
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at J1.SpeedLimit.main(SpeedLimit.java:20)
'字符串对= keyboard.nextLine();' –
我不理解 –
在'String pair = keyboard.next();'.next()'返回“这个扫描器的下一个完整标记。”我认为@SanketMakani建议它可能只返回第一个单词而不是整行。如果你用建议的替换这条线,它将获取整条线。 – dolan