【发布时间】:2017-06-21 08:41:38
【问题描述】:
String s1 = "abcd5";
String s2 = "abcd"+"5";
String s3 = "adcd"+s1.length();
System.out.println("s1 == s2 : "+(s1 == s2));
System.out.println("s2 == s3 : "+(s2 == s3));
System.out.println("s1 == s3 : "+(s1 == s3));
为什么第一个陈述是正确的而其余陈述是错误的。 String 与 int 的连接行为是否不同?
【问题讨论】:
-
不是那个问题的重复。这个问题完全不同。
-
@Pshemo 至少你链接的那个的上下文是相似的,当前重复的那个真的和这个问题无关。
-
问题是你分配给“s3”的字符串在第二个位置有“d”。不幸的是,这已被标记为重复。所以比较是用“ab...”和“ad...”进行的,所以任何时候混合 s3 都是正确的行为