在Java中循环时,字符串比较不起作用

0 java loops while-loop java.util.scanner

可能重复:
如何比较Java中的字符串?

我正在研究一个小程序,用你的名字询问你的名字Scanner.如果你输入blankstring,那么我希望控制台显示一条消息.

这是我尝试做的事情:

import java.util.Scanner; 
public class Adventure
{  
    public static void main(String[] args) 
    {      
        Scanner myScan = new Scanner (System.in);                             
        System.out.println("What's your name?");                                 
        String name = myScan.nextLine();

        while (!(name == ""))   //Always returns false.
        {
            System.out.println("That's not your name. Please try again.");
            name = myScan.nextLine();
        }

        System.out.println("It's a pleasure to meet you, " + name + ".");
    }
}
Run Code Online (Sandbox Code Playgroud)

代码永远不会进入while循环.为什么?

Tom*_*icz 10

将您的条件更改为:

while(!name.equals("")) {
Run Code Online (Sandbox Code Playgroud)

或者如下所示m0skit0:

while(!name.isEmpty()) {
Run Code Online (Sandbox Code Playgroud)

也可以看看

  • 甚至更好,`!name.isEmpty()`(仅限Java 6+ ofc). (7认同)
  • @ m0skit0:谢谢,我冒昧地将你的评论纳入答案.希望你不介意(?)和BTW [Java 6将不再维护](http://www.oracle.com/technetwork/java/eol-135779.html)在不到一个月. (2认同)