字符和字符串之间的比较不像我期望的那样工作.我究竟做错了什么?

Bon*_*nz0 0 java string comparison character string-comparison

我正在尝试比较字符串和字符(将其转换为字符串后).代码没有像我希望的那样工作.

package main;
import java.lang.Character;

public class Main {
    public static void main(String[] args) {
        char myChar = 'a';
        String myString = "a";
        if(myString == Character.toString(myChar)) {
            System.out.println("This SHOULD work! But it doesn't.");
        } else {
            System.out.println("This SHOULDN'T work! But it does.");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?

Eng*_*uad 5

使用:

if(myString.equals(Character.toString(myChar)))
Run Code Online (Sandbox Code Playgroud)

代替:

if(myString == Character.toString(myChar))
Run Code Online (Sandbox Code Playgroud)

==测试两个引用是否指向内存中的同一个对象,而equals方法检查两个引用是否指向同一个对象它们具有相同的内容.

  • 我认为SO需要有一个功能,如果一个问题包括单词"string"以及"compare","comparison"或"equals",那么会出现一个巨大的闪烁红框,并告诉你使用`equals`代替`==`. (4认同)