第一个条件为false,第二个条件为true。我原以为它们都是true。
System.out.println(Integer.toString(3) == "3");
System.out.println(Integer.parseInt("3") == 3);
System.out.println(Integer.toString(3) == "3");
System.out.println(Integer.parseInt("3") == 3);
Integer.parseInt
将字符串转换为原始整数,原始类型可以使用==
进行比较。然而,Integer.toString
会生成一个String
对象,而用于对象的==
检查它们是否是完全相同的引用;因此应该使用String#equals
来比较字符串的值。
System.out.println(Integer.toString(3).equals("3"));
System.out.println(Integer.parseInt("3") == 3);
上面的代码输出如下:
true
true
String
和==
一样比较引用类型。System.out.println(Integer.toString(3).equals("3"));
- Elliott Frisch