坚持使用' nextLine()'

时间:2016-07-05 16:09:53

标签: java string java.util.scanner

我正在解决黑客地球上的编程挑战,我在其中扫描大量空格分隔String s。要扫描这样的字符串我使用了nextLine()方法,我已经阅读了here.但是它仅在以下while()循环中第一次有效。然后在输出中没有扫描或打印任何内容。这是我的代码:

Scanner in = new Scanner(System.in);
int t = in.nextInt();
while(t-->0){
        in.nextLine();
        String s = in.nextLine();
        String str[] = s.split(" ");

        for(int i=0;i<str.length/2;i++){
            String temp;
            temp = str[i];
            str[i] = str[str.length-i-1];
            str[str.length-i-1] = temp;
        }

        for(int i=0;i<str.length;i++){
            System.out.print(str[i]+" ");
        }    
   }

我输入的内容如下:

2                              //number of Strings to be Scanned.
Hello World
Hello StackOverFlow Users

对于第一个字符串Hello World,输出完全正常,但在此输出后没有任何反应。我在这里做错了什么?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

@dabadaba和@Tim Biegeleisen提到我从我的代码中删除了第一个in.nextLine()。但之后我会在用户输入后t增加1。这对我有用!

这是正确的代码:

     Scanner in = new Scanner(System.in);
     int t = in.nextInt();
     t=t+1;
   while(t-->0){
          //  in.nextLine();
        String s = in.nextLine();

        String str[] = s.split(" ");

        for(int i=0;i<str.length/2;i++){
            String temp;
            temp = str[i];
            str[i] = str[str.length-i-1];
            str[str.length-i-1] = temp;
        }

        for(int i=0;i<str.length;i++){
            System.out.print(str[i]+" ");
    }

   }

感谢您的帮助。