我的代码下面有一个异常错误:
YN = input.nextLine().charAt(0); //line 13
运行时。赋值是创建一个从控制台分配10个数字的数组,当我输入10个数字时,运行自动完成并给出第13行的错误。第13行有问题还是其他问题?
(数组必须是普通数组而不是arrayList)
import java.util.*;
import java.util.Arrays;
public class CountOccurrences {
static Scanner input = new Scanner(System.in);
static int[][] temp = new int[10][1];
public static void main(String[] args) {
char YN = 'y';
while (YN == 'y') {
run();
System.out.print("Continue? (y or n)\t");
YN = input.nextLine().charAt(0); // Line 13
}
}
public static void run() {
System.out.print("Enter the integers between 1 and 100: ");
int[] numbersArray = new int[10];
for (int i = 0; i < numbersArray.length; i++) {
numbersArray[i] = input.nextInt();
}
for (int i = 0; i < numbersArray.length; i++) {
Arrays.sort(numbersArray);
System.out.println(numbersArray[i]);
}
}
}
答案 0 :(得分:4)
input.nextLine()
可以是一个空字符串,在这种情况下input.nextLine().charAt(0)
将为您提供该异常。在致电length()
之前,您应该先检查String
的{{1}}。
现在,我发现您使用charAt
来阅读input.nextInt()
方法中的输入,您需要做的是在{{1}的末尾添加run()
使用方法,使用包含最终int的行的末尾。
但是,您仍然必须检查input.nextLine()
中获得的字符串的长度,因为用户可能会按Enter而不是按Y或N,这将导致相同的异常。