我正在尝试做一个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新手,非常感谢帮助,感谢您的建议。
答案 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);
}
}
我认为这可以正确回答你的问题。
一切顺利
肖恩