java - 在哨兵不工作时做(java)

标签 java string

我在下面代码中的哨兵将无法工作。输入'zzz'时它一直循环而不是退出。有任何想法吗?请注意,我希望在此练习中使用控制台类而不是扫描器类。

class Username{
    public static void main(String[] args){
        String name, surname, code, username ;
        boolean sentinel = true ;
        do
        {
            System.out.print("enter name: ");
            name = Console.readString();

            System.out.print("enter surname: ");
            surname = Console.readString();

            System.out.print("enter code: ");
            code = Console.readString();

            username = surname + name.charAt(0) + code ;

            System.out.print("your username: " + username);

            System.out.println();

            System.out.print("enter zzz to stop or hit eneter to continue: ");
            String ans = Console.readString();
            if (ans == "zzz")
              sentinel = false ;
        }
        while (sentinel);
    }//end main
}//end class

最佳答案

使用

if (ans.equals("zzz"))

代替

if (ans == "zzz")

在 Java 中,只有当两个字符串是同一对象时,它们才“相等”……您必须使用 equals() 方法来比较实际的字符串内容。

关于java - 在哨兵不工作时做(java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4067749/

相关文章:

java - 无法找到或加载主类

java - Android Flavors - 无法解析符号 R

python - 如何在 Python 中将表达式拆分为多行

c# - 实现简单的字符串实习

java - 是否可以在 Saxon 中缓存 XML 文档以避免重新解析和重新索引?

java - Servlet 类 com.foobar.jaxrs.application.MyApplication 不是 javax.servlet.Servlet

regex - 如何判断正则表达式中的匹配项之间是否存在三个或更多字符?

java - 在Java中的字符串中查找第二次出现的子字符串

C++:在点后提取字符串

java - 循环遍历 InputStream 截断数据