【问题标题】:Java if else statement changing string [duplicate]Java if else语句更改字符串[重复]
【发布时间】:2012-12-21 11:24:40
【问题描述】:

可能重复:
How do I compare strings in Java?

我有以下代码,但由于某种原因它不会改变字符串

accountClass 返回字符串“L”

String accountClass = accClass.substring(4, 5);
        if (accountClass == "A") {
            accountClass = "Staff - A";
        } else if (accountClass == "B") {
            accountClass = "Student - B";
        } else if (accountClass == "H") {
            accountClass = "Personal - H";
        } else if (accountClass == "K") {
            accountClass = "60 Plus - K";
        } else if (accountClass == "L") {
            accountClass = "Business - L";
        } else if (accountClass == "P") {
            accountClass = "Charity - P";
        } else if (accountClass == "Q") {
            accountClass = "AIB Subsidiary - Q";
        } else if (accountClass == "X") {
            accountClass = "Irish State Spons & Sub's - X";
        } else if (accountClass == "Y") {
            accountClass = "Other Companies & Orgs - Y";
        } else if (accountClass == "Z") {
            accountClass = "Impersonal & Gen. Ledger - Z";
        }

我只是想知道是 == 导致了问题还是其他原因?

【问题讨论】:

  • 是的,它导致了问题。

标签: java string if-statement


【解决方案1】:

始终使用 equals() 方法检查字符串是否相等。在对象== 的情况下,检查两个引用变量是否引用同一个实例。要检查两个字符串是否有意义地相等,请使用String.equals() 方法。

if (accountClass == "A") {

应该是

if (accountClass.equals("A")) {

你的其他 if 语句也是如此。

【讨论】:

    【解决方案2】:

    刚刚意识到应该是 if (accountClass.equals("L"))

    【讨论】:

    • 请投票并接受已经告诉您的其他答案。
    • @Alnitak 实际上,应该阅读同一问题的数千个相同答案之一。
    • @MarkoTopolnik 也是如此,包括我写的那篇有一百多票的 ;-)
    • 谢谢。是的 srry 我已经用谷歌搜索了,但我受到时间限制。感谢所有帮助
    • @topcat3 如果您在 Java 课程中,这应该是在第一个课程中...我责怪老师! ;-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-09
    • 1970-01-01
    • 1970-01-01
    • 2016-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多