0

我在使用 while 循环时遇到了问题。我已经完成了所有工作,除了如果用户为一个短语输入一个空白,它会给他们一个声明说输入一个非空白短语。这需要循环,直到用户输入一个短语,但我似乎无法让它工作。

这是代码:

System.out.print("Enter a phrase to search the above text for: ");
phrase = kb.nextLine();

while (phrase.equals(""))
{
    System.out.print("Please enter a non-blank phrase: ");
    phrase = kb.next();
}
4

2 回答 2

1

在您的 while 循环中,您正在使用phrase = kb.next();,它将在newline给出空白输入时读取。您可以使用kb.nextLine();忽略空白输入中的换行符。

        while (phrase.equals(""))
        {
            System.out.print("Please enter a non-blank phrase: ");
            phrase = kb.nextLine();
        }

或者您可以使用trim删除尾随newline,所以使用while (phrase.trim().equals("")): -

       while (phrase.trim().equals(""))
        {
            System.out.print("Please enter a non-blank phrase: ");
            phrase = kb.next();
        }
于 2012-10-20T20:01:16.580 回答
0

尝试修剪:

            while (phrase.trim().equals(""))
            {
                System.out.print("Please enter a non-blank phrase: ");
                phrase = kb.next();
            }
于 2012-10-20T20:01:18.137 回答