Java - 当变量等于字符串时,If 语句未捕获

标签 java string if-statement char

Possible Duplicate:
How do I compare strings in Java?

(这可能是重复的,我不知道 .equals 。我很抱歉。)

今天我在 Java 中闲逛,决定制作一个 4 字符的字符串生成器。我让程序生成我定义的所有可能的字符组合。这不是一个项目,我只是想看看这是否可行。我的问题在于字符串检查。我先把代码贴出来。

String text = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
char[] chars = text.toCharArray();
String name = "Mike";
String pass;

outerLoop:
for (int a = 0; a < chars.length; a ++) {
    for (int b = 26; b < chars.length; b++) {
        for (int c = 26; c < chars.length; c++) {
            for (int d = 26; d < chars.length; d++) {
                pass = chars[a]+""+chars[b]+""+chars[c]+""+chars[d];
                System.out.println(pass);
                if (pass == name){
                    System.out.print("password");
                    break outerLoop;
                }
            }
        }
    }
}

嵌套的if将检查是否 pass等于迈克。如果是,那么它会打印密码并打破 for 循环。

  • pass = chars[a]...正确的方法是这样做吗?当我在没有 if 的情况下测试它时,我让它打印出通行证,它正确打印了所有组合。它确实打印了 Mike ,但它没有在 if 中捕获.
  • 我还更改了嵌套的 for循环,因此它们以小写字母开头,因为当我进行微小更改时,程序需要一段时间才能运行。

最佳答案

            if (pass == name){

应该是

            if (pass.equals(name)){

使用String.equals()检查字符串相等性的方法。 == 运算符只是检查两个引用变量是否引用同一个对象。 equals() 方法检查两个字符串是否有意义地相等。

关于Java - 当变量等于字符串时,If 语句未捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13905898/

相关文章:

java - 为什么我不能替换给定字符串中的\n?

java - 我想知道如何将java中的这个由星号组成的城市旋转90度(所以它实际上看起来像一个城市)

java - java空异常

java - 需要帮助避免 Selenium、Java 中的一个错误,其中两个字段正在消失。我需要一个在字段丢失时激活的循环

java - 检测 GitHub 存储库中的语言

java - 从错误的线程异常调用

java - 两个字符串不相等

python - Python 字符串格式中的位置参数 : str. 格式与 f 字符串

javascript - 条件运算符 "? : "可以被视为 JavaScript 中 if-else 语句的替代吗?

java - edittext可见意味着我如何检查android中的if条件