Java,基本数组错误

时间:2014-11-23 20:58:48

标签: java arrays

我正在尝试做一个Java程序,让我输入10个单词,然后单词应该以相反的顺序重复(最后一个等)。

这是我目前的代码:

import java.util.Scanner;
import java.lang.String;

public class Words {

public static void main(String[] args){

String word[] = {};

for(int x = 0; x < 10; x+=1) {

System.out.println("Input any word");

Scanner input = new Scanner(System.in);
word = new String[] { input.next() };

      }

for(int y = 9; y >= 0; y-=1) {

System.out.println(word[y]);

      }
}}

尝试编译时出现以下错误:

线程中的异常&#34; main&#34; java.lang.ArrayIndexOutOfBoundsException:9在Words.main(Words.java:21)

我是Java新手,非常感谢帮助,感谢您的建议。

2 个答案:

答案 0 :(得分:1)

这不是数组如何工作的。 将String word[] = {};更改为String word[] = new String[10];

另外,将word = new String[] { input.next() };更改为word[x] = input.next()

Scanner input = new Scanner(System.in);移到for循环之外也是个好主意。您应该了解数组如何工作以确保不再发生这种情况。

答案 1 :(得分:0)

您可以尝试使用ArrayList来执行此操作:

import java.util.*;

public class HelloWorld
{
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        ArrayList al = new ArrayList();
        do{
            System.out.println("Enter word");
            String word = sc.nextLine();
            al.add(word);
            if(al.size()==10){
                System.out.println("Words in reverse order");           
                for(int i = al.size()-1; i>= 0; i--){
                    System.out.println(al.get(i));
                }
            }
        }while(al.size()<10);
    }
}

我认为这可以正确回答你的问题。

一切顺利

肖恩