将char转换为字符串会发生什么? (JAVA)

时间:2013-01-15 01:42:35

标签: java string char

  

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

我正在使用String.valueOf将char转换为字符串。但返回值似乎与同一个字母的字符串不完全相同。代码如下:

    String myString = "s";
    char myChar = 's';//both string and char are assigned as letter 's'

    String stringFromChar = String.valueOf(myChar);

    if (myString == stringFromChar) {
        out.println("equal");
    } else {
        out.println("not equal");
    }

每次打印不相等。请帮忙,谢谢! :)

3 个答案:

答案 0 :(得分:5)

==比较参考值,而不是实际值。您必须使用equals来比较该值。

如果您不明白,请阅读此article

答案 1 :(得分:2)

永远不要再这样做!!!答应我!!! = P

总是在比较字符串时,总是使用equals方法。见下文!

    String myString = "s";
    char myChar = 's';//both string and char are assigned as letter 's'

    String stringFromChar = String.valueOf(myChar);

    if (myString.equals(stringFromChar)) {
        System.out.println("equal");
    } else {
        System.out.println("not equal");
    }
}

答案 2 :(得分:1)

  

将char转换为字符串会发生什么?

好吧,您使用的是String.valueOf(char)方法,其javadoc没有说 它如何进行转换。但是您看到的行为强烈暗示您每次调用方法时使用的JVM都会创建一个新的String对象。

但你应该依赖于这种情况。

最重要的是,应始终使用equals方法来比较字符串。将字符串与==进行比较通常会给您带来误报......取决于字符串的创建/获取方式。你刚刚被这种感觉所困扰。学习。

参考: