我的Integer.toString转换有问题。此代码输出“ololo”。为什么?如何将整数转换为字符串?
String str1= "1";
String str2=Integer.toString(1);
if (str1!=str2)Log.d("myLogs","ololo");
答案 0 :(得分:2)
您必须使用String
方法比较equals
,而不是==
和!=
运算符,因为它们会比较String
对象引用。
if (!str1.equals(str2)) {
Log.d("myLogs","ololo");
}
请注意,当您使用Integer#toString
时,您正在创建一个不在String
JVM池中的新String
,从而收到所描述的错误。
答案 1 :(得分:0)
必须使用equals进行字符串比较
if (!str1.equals(str2))...
使用!=
时,您会获得引用相等(不等)
答案 2 :(得分:0)
尝试String.valueOf(1);
将Integer更改为String。
答案 3 :(得分:0)
使用!str1.equals(str2)
代替。
您不应该使用==
或!=
作为字符串