数组存储用户输入

时间:2013-03-07 21:29:55

标签: arrays string

我可能已经看到了,我还没有掌握数组。我正在尝试创建一个存储用户输入的10个字符串,但我怀疑我是否已经采用了正确的方法。目前我收到错误'java.lang.ArrayIndexOutOfBoundsException:10在InputLoop.main(InputLoop.java:22)'任何帮助将不胜感激!

import java.util.Scanner;

public class InputLoop
{
public static void main(String[] args)
{
    Scanner scan = new Scanner(System.in);

    String array[] = new String[10];
    int num =11, i =0;
    System.out.println ("Enter a word");
    for (i=0;i<num;i++)
    {
         while (scan.hasNextInt()) // while non-integers are present...
        {

            scan.next();           //...read and discard input, then prompt again
            System.out.println ("Bad input. Enter a word");

        }

        array[i] = scan.next();

    }
}
}

3 个答案:

答案 0 :(得分:0)

当您在Java中对数组执行任何操作时,您必须记住数组索引从0开始

因此,当您声明一个大小为10的数组时,您会得到一个从0或0-9开始的10元素数组。数组的第10个实际上是索引9。

所以你num = 11的{​​{1}}应该是num = array.length

答案 1 :(得分:0)

Num需要设置为10.你循环11次。对于大小为n的数组,索引从0到n-1。

答案 2 :(得分:0)

这里你要声明大小为10的数组并用11初始化num

String array[] = new String[10];

所以数组的索引从0到9,即总共10 ...

并且你的for循环将从0旋转到10,即总共11 ...并且它将导致arrayindexoutofbound

使num = 10的值或使你的数组​​大小为11 ..