繁体   English   中英

Java,基本数组错误

[英]Java, basic array error

我正在尝试做一个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]);

      }
}}

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

线程“主”中的异常java.lang.ArrayIndexOutOfBoundsException:Words.main处为9(Words.java:21)

我是Java的新手,希望能得到帮助,谢谢提供建议。

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

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

Scanner input = new Scanner(System.in);移动也是一个好主意Scanner input = new Scanner(System.in); for循环之外。 您应该阅读数组的工作原理,以确保不再发生这种情况。

您可以尝试使用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);
    }
}

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

祝一切顺利

肖恩

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM