字符串的数组错误

时间:2014-01-06 07:50:38

标签: java arrays

我遇到了字符串数组的问题,程序将使用它的名称放在屏幕上。我做了一些编码和创建2D游戏和Android应用程序,但事实上我从来没有使用数组来保存分数或东西现在我卡住了,需要学习它和下面的代码想到它,因为我们正在为拼贴学生把学位放到数组出错的错误,我无法弄清楚为什么下面的完整代码:

    public static void main(String[] args) {
    // TODO Auto-generated method stub

    Chatlength = new String[10];

    for(i =0; i <= Chatlength.length ; i++){
        Scanner s = new Scanner(System.in);
        String ss = s.nextLine();
        Chatlength[i] = ss;


        }
    while(true){
    if(i > Chatlength.length){
            int ints = 0;
        while(ints <10){
            System.out.println("Name "+ints+": "+Chatlength[ints]);
            ints++;
        }
    }
    }

它给了我Chatlength[i] = ss;的错误。

5 个答案:

答案 0 :(得分:1)

由于你的循环界限,我猜你得到ArrayIndexOutOfBoundsException

for(i =0; i <= Chatlength.length ; i++){

应该是:

for (int i = 0; i < Chatlength.length; i++) {

...使用局部变量声明而不是静态变量,我假设你已经在代码中声明了你没有向我们展示过。

长度为10的数组的有效索引为0到9(含)。当您尝试迭代集合时,实际上需要<=来获取循环索引变量,这是非常非常罕见的。 (Java中的所有标准集合都是基于0的,因此您几乎总是希望拥有一个独占的上限。)

此外,我强烈建议您开始遵循Java命名约定。

答案 1 :(得分:0)

条件是罪魁祸首。你要加一个大小的数组。

i <= Chatlength.length

将其更改为

i < Chatlength.length

答案 2 :(得分:0)

检查for - 循环:

for(i =0; i <= Chatlength.length ; i++) 

应该是

for(i =0; i < Chatlength.length ; i++)

答案 3 :(得分:0)

你没有先声明数组:

 Chatlength = new String[10];  //Wrong code;

将其更改为:

 String[] Chatlength = new String[10];

然后java基于零,你应该使用它:

 for(i =0; i < Chatlength.length ; i++)

答案 4 :(得分:0)

对于你创建的数组,没有这样的索引i = 10,根据你在循环中的条件,它允许i = 10(i <= Chatlength.length),这不是一个有效的数组位置,因此你得到了异常< / p>