如果在一行中输入多个字符串,程序将打印"输入字符串"一个额外的时间.例如,我输入"One Two",它会提示"输入字符串"2次.如果我输入"一二三",它会提示"输入字符串"3次,依此类推.无论如何在没有在循环中创建新对象的情况下解决这个问题?
import java.util.Scanner;
class Array {
public static void main(String[] args) {
String[] x = new String[1000];
Scanner kb = new Scanner(System.in);
int i = 0;
while (true) {
System.out.println ("Enter Strings");
x[i] = kb.next();
if (x[i].equals("done"))
break;
i++;
}
for (i = i - 1; i >= 0; i--) { //prints strings in reverse order prior to done
System.out.println(x[i]);
}
}
}
/*Example Output:
Enter Strings
One Two
Enter Strings
Enter Strings
Hello
Enter Strings
Bye
Enter Strings
done
Bye
Hello
Two
One*/
Run Code Online (Sandbox Code Playgroud)
它促使Enter Strings每个循环.如果输入3个标记(以空格分隔),则它将循环运行3次,立即读取每个值.
如果您想要一个提示,无论您输入多少个令牌/单词,请阅读整行nextLine:
x[i] = kb.nextLine();
Run Code Online (Sandbox Code Playgroud)