java - For 循环返回时不退出

标签 java minecraft

我是编程新手,所以这可能是我的完全疏忽。但我可以确认(在下面)If 标记中的两个值是相等的,但它没有返回我的值。

public static LANGUAGESTRING toLangString(String text) {

    for (LANGUAGESTRING lang : LANGUAGESTRING.values()) {
        String langStr = lang.toString();
        System.out.println(langStr);
        System.out.println(text);
        if (text == langStr) {
            return lang;
        }
    }
    return null;
}

这是打印出来的内容。这不是我的整个 LANGUAGESTRING 枚举,但您可以从这里得到要点。它应该返回语言字符串,对吧?看看第 5 行和第 6 行是相同的吗?即使它返回它,它也会打破循环,对吗?

[14:41:45] GodToBelieverPrayerWhenNoItemNeed
[14:41:45] GodToBelieverPrayingWeak
[14:41:45] GodToBelieverPrayerTooSoon
[14:41:45] GodToBelieverPrayingWeak
[14:41:45] GodToBelieverPrayingWeak
[14:41:45] GodToBelieverPrayingWeak
[14:41:45] EnterHolyLandInfoYourGod
[14:41:45] GodToBelieverPrayingWeak

最佳答案

使用.equals而不是==

if(text.equals(langStr))

关于java - For 循环返回时不退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37977653/

相关文章:

java - 在 Java 中比较对象的更优雅的方式

java - Spigot - 将字符串转换为 Material - Java

java - 如何将java输出作为matlab变量传递?

java - 测试和自定义 Java 模型 (1.12.2)

Lua 参数问题

java - 我的世界模组中如何拥有多种矿石?

java - 带有 Bukkit 的 Minecraft 服务器中的第三方 jar (Twitter4J)

java - 在 adf 中以编程方式更新记录,无需任何关键引用

java - 使用 Java 按顺序编写大型 PDF

java - 将 dd/mm/yyyy 日期格式插入数据库表