在两个字符串输入数组后停止重复提示?

0 java arrays

如果在一行中输入多个字符串,程序将打印"输入字符串"一个额外的时间.例如,我输入"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)

rge*_*man 5

它促使Enter Strings每个循环.如果输入3个标记(以空格分隔),则它将循环运行3次,立即读取每个值.

如果您想要一个提示,无论您输入多少个令牌/单词,请阅读整行nextLine:

x[i] = kb.nextLine();
Run Code Online (Sandbox Code Playgroud)