以下代码段中的字符串索引超出绑定的异常

时间:2016-04-03 09:23:16

标签: java string char

我在这个代码段上收到错误

char a[] = new char[5];

Scanner sc  = new Scanner(System.in);
System.out.println("Please enter values");                

for (int i = 0; i < 5; i++) {
    a[i] = sc.next().charAt(i);
}

2 个答案:

答案 0 :(得分:0)

你应该检查输入字符串长度:

for (int i = 0; i < 5; i++) {
    String str = sc.next();
    if (str.length() > i) {
        a[i] = str.charAt(i);
    }
} 

但你的算法很奇怪。

答案 1 :(得分:0)

你这样做:

for (int i = 0; i < 5; i++) {
    a[i] = sc.next().charAt(i);
}

但如果用户键入少于5个字符的字符串

,该怎么办?

然后你试图读取一个超出界限的元素......

这清楚地解释了代码中错误的原因..

验证输入甚至更好,使for循环从0到输入len。