我试图接受用户输入并将其放入角色阵列然后将其打印出来....它是一个更大的程序的一部分,因为我是新的编码器,我希望你能保持简单的程序,而不是.... 我得到错误"数组索引超出范围"。我尝试改变阵列的长度,但仍然无法正常工作。
public static void main(String[] args) {
// TODO Auto-generated method stub
char[] ToEdit = new char [];
Scanner sc = new Scanner(System.in);
for (int i=0; i<5; i++)
{
System.out.println(i + ":");
ToEdit[i] = sc.next().charAt(i);
}
System.out.println(ToEdit);
}
谢谢
答案 0 :(得分:2)
问题在于:char[] ToEdit = new char [];
。
在该行上,您将创建一个没有大小的空数组。您需要将其更改为:char[] ToEdit = new char [5];
。
此外,您需要将此更改为ToEdit[i] = sc.next().charAt(i);
:ToEdit[i] = sc.next().charAt(0);
。您当前行的问题在于,即使您输入1个字符,您的代码也会查找更多内容。
作为旁注,建议您将数字5
提取为变量。这样,您只需更改一个位置即可增加或减少程序可处理的字符数。
作为进一步的练习,您可以查看列表,了解如何使程序更灵活,而无需为阵列定义大小。
答案 1 :(得分:0)
这不会编译,因为您需要先添加char数组长度: char [] ToEdit = new char [5]; 然后这段代码ToEdit [i] = sc.next()。charAt(i);生成String数组超出绑定的异常。因为charAt(i)每次都在0,1,2,3,4等字符串中找到char,如下所示(程序的输出)。所以你需要把它改成ToEdit [i] = sc.next()。charAt(0);
0: ABCDE 1: ACX 2: ACV 3: acvff 4: acdcdvc acvfd