我正在使用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");
}
每次打印不相等。请帮忙,谢谢! :)
答案 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
方法来比较字符串。将字符串与==
进行比较通常会给您带来误报......取决于字符串的创建/获取方式。你刚刚被这种感觉所困扰。学习。
参考: