[英]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.