我遇到了一个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();
}
答案 0 :(得分: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();
}
答案 1 :(得分:0)
尝试修剪:
while (phrase.trim().equals(""))
{
System.out.print("Please enter a non-blank phrase: ");
phrase = kb.next();
}