黑马程序员技术交流社区
标题:
怎么样判断两个字符串的内容是否相同
[打印本页]
作者:
黑马-罗志强
时间:
2013-1-7 09:45
标题:
怎么样判断两个字符串的内容是否相同
我想要判断两个字符串的内容是否相同,最好用什么方法呢?在两个对象之间用"=="可不可以,
或者这样可不可以
if (s1.equals(s2) )
or if (s1.equalsIgnoreCase(s2) )
or if (s1.startsWith(s2) )
or if (s1.endsWith(s2) )
or if (s1.regionMatches(s1_offset, s2, s2_offset, length) )
or if (s1.compareTo(s2) <0)
作者:
黑马刘岩
时间:
2013-1-7 10:04
用equal()啊,String复写了Object类的equal方法,用于比较两个字符串内容是否完全相同
作者:
黄锦成
时间:
2013-1-7 11:12
字符串比较内容是用equals,如果忽略大小写用equalsIgnoreCase
作者:
ying
时间:
2013-1-7 12:18
首先你要搞清楚equals和==的区别与值类型和引用数据类型
1. 值类型是储存在内存中的堆栈(后面简称栈),而引用的变量在栈中仅仅是储存的是引用数据
变量的地址,而值本身世储存在内存中的堆中的。
== 操作比较的两个变量的值是否相等,对于引用变量则比较的是在栈中储存的地址,
即栈内的内容是否相等。
2. equals操作的两个变量是否对同一个对象的引用,即堆中内容是否相同。
==比较的是两个对象的地址,而equals比较的是2个对象的内容。
显然 当equals是为true时,==不一定为true;
你要比较两个字符串内容(值类型)是否相同,即用equals
作者:
郭俊
时间:
2013-1-7 16:55
Equals和 ==
equals() 用于引用数据类型(除了基本数据类型8个,都是引用数据类型,包括封装类,Object子类等), 比较是否指向相同的对象, 例如 String str = "abc"; 等效于: char data[] = {'a', 'b', 'c'}; String str = new String(data); 就是str 指向了 new String(data) 这个对象. 如果再有其他变量也指向这个对象,他们比较的结果就返回true;由于此方法在Object里, 所以它有很多重写, 具体要看需求;
如果对象之间用==比较,是比较两个对象的hash值是否相等,你可以认为是在比较两个对象是不是在同一个内存地址的对象.
作者:
张森
时间:
2013-1-7 17:51
用 equals比较内容
但如果你是对象的比较的话
,你得自己重写 equals方法 和 hashcode方法
一般格式是固定的
public boolean equals(Object obj){
if(obj instanceof EqualsDemo){
EqualsDemo ed = (EqualsDemo)obj;
if(ed.getName().equals(this.getName())&&ed.getAge()==this.getAge()){
return true;
}else{
return false;
}
}else{
return false;
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2