截取出的字符串进行判断??

String a="11111111111111";
String b=a.substring(0,3);
System.out.println(b=="111");

为什么答案是false求jie'da

qq_42217906
爲爲 因为他们不是同一个对象,所以为false,你可以试下equals(),这个比较两个值是不是一样的
一年多之前 回复

8个回答

看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方法

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问