我正在解决黑客地球上的编程挑战,我在其中扫描大量空格分隔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
,输出完全正常,但在此输出后没有任何反应。我在这里做错了什么?任何帮助将不胜感激。
答案 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]+" ");
}
}
感谢您的帮助。