2012-10-20 34 views
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(); 
} 
+1

@FdFehfhd ..你需要标记的答案通过点击除了每个答案之外的箭头接受。见[**如何接受答案**](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) –

+0

'但我似乎无法得到它工作“ - 下次请指定__how__,您似乎无法使其工作。 – ppeterka

回答

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(); 
     } 
0

尝试用装饰:

  while (phrase.trim().equals("")) 
      { 
       System.out.print("Please enter a non-blank phrase: "); 
       phrase = kb.next(); 
      } 
相关问题