Java将char转换为字符串将不起作用

时间:2013-07-04 11:14:27

标签: java string char

为什么这会返回false?我怎样才能让它返回真实?

public class Test {
    public static void main(String [] args) {
        char character = 'X';
        String x = Character.toString(character);
        System.out.println(x == "X"); // returns false
    }
}

4 个答案:

答案 0 :(得分:4)

使用String.equals(otherString)功能比较strings,而不是==运营商。

原因是==只是比较对象引用,而.equals()检查equality

 System.out.println(x.equals("X"));

答案 1 :(得分:2)

您无法将Java中的字符串与==进行比较。使用x.equals("X")。否则,您正在使用引用相等,并且实际上正在测试x"X"是相同的引用(不太可能是这种情况)。

答案 2 :(得分:1)

因为Character.toString(character)会返回新的String。因此x =="X"false==比较引用,而不是内容。要比较String,请使用equals()方法。

System.out.println(x.equals("X"));

Character.toString(character);来电String.valueOf(character),其代码为:

public static String valueOf(char c) {
  char data[] = {c};
  return new String(0, 1, data); // new String object created here
}

因此,使用==比较对象引用失败。

答案 3 :(得分:0)

Java中的

== operator检查两个引用是指向同一个对象还是现在指向。在你的情况下这是错误的。 对于字符串比较,请使用equals()equalsIgnoreCase()