String a="11111111111111";
String b=a.substring(0,3);
System.out.println(b=="111");
为什么答案是false求jie'da
看substring方法实现 就知道了 返回的是一个新的字符串对象
public String substring(int beginIndex, int endIndex) {
if (beginIndex < 0) {
throw new StringIndexOutOfBoundsException(beginIndex);
}
if (endIndex > value.length) {
throw new StringIndexOutOfBoundsException(endIndex);
}
int subLen = endIndex - beginIndex;
if (subLen < 0) {
throw new StringIndexOutOfBoundsException(subLen);
}
return ((beginIndex == 0) && (endIndex == value.length)) ? this
: new String(value, beginIndex, subLen);
}
==判断对象id是否相同的吧 ,判断内容用函数可以
因为他们不是同一个对象,所以为false,你可以试下equals(),这个比较两个值是不是一样的
==号是用来判断对象是否相等,比较的是两个对象的地址
String b和"111"现在是两个不同的对象,所指向的地址也就是不同的,
如果你单纯是想比较值是否相等可以用.equals方法
比较内容需要用.equals方法, ==比较的是对象的地址
因为==是判断内存地址是否一致,equals方法才是判断值是否一致。
用equals()方法
如果要比较内容是否相同,应该用equals方法