簡體   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