我想要做的是我有一个读取数字的程序,该数字表示有多少单词,例如:
3
red
blue
green
然后以相反的顺序打印出相同的文本,这样就可以了
green
blue
red
后跟一个空行,表明服务器已完成该特定问题。但是我的代码中似乎有一个错误。
我试图将单词存储在数组List中。我使用for
循环将它们存储在列表中,然后以相反的顺序打印出来,我只是以相反的方式使用另一个循环,从列表的末尾开始到开头。
当我从命令提示符运行程序时,它只是进入下一个命令提示符行,就像我编译程序一样,没有错误但是当我 做了一个测试,使用我创建的测试程序,似乎程序读取数字然后去打印出一个空白数组。
似乎来自服务器的单词不会存储在数组中,我不确定我做错了什么。我不是最伟大的程序员,所以任何帮助都会受到极大的赞赏。
守则:
import java.io.*;
import java.util.*;
public class Solution
{
public static void run(BufferedReader in, PrintWriter out)
throws IOException
{
int x = Integer.parseInt(in.readLine());
while(x != 0)
{
ArrayList num = new ArrayList();
for(int i = 0; i < num.size(); i++)
{
//String f = in.readLine();
num.add(in.readLine());
}
//System.out.println(num);
for(int i = num.size()-1; i > 0; i--)
{
out.println(num.get(i));
//x = Integer.parseInt(in.readLine());
System.out.println();
}
break;
}
out.flush();
}
}
答案 0 :(得分:9)
ArrayList num = new ArrayList();
for(int i = 0; i < num.size(); i++)
表示你从0到... 0!
for(int i = 0; i < x; i++)
会更好。
答案 1 :(得分:3)
while循环永不停止
答案 2 :(得分:2)
此处num的大小为0.您应该使用'x'而不是num.size()
for(int i = 0; i < num.size(); i++)
{
//String f = in.readLine();
num.add(in.readLine());
}
答案 3 :(得分:0)
这可能不是你所做的那么......有点不同......: - )
int x = Integer.parseInt(in.readLine());
String[] arr = new String[x]; // Edited :: Slip of mind - Thanks Pgras
for(int i=0;i<x;i++){ //input x number of words and store..
arr[i] = in.readLine();
}
for(i=x-1;i>=0;i--){ //Display words in reverse order
System.out.println(arr[i]);
}