首页 > 代码库 > java中判断两个字符串是否相等的问题
java中判断两个字符串是否相等的问题
我最近刚学java,今天编程的时候就遇到一个棘手的问题,就是关于判断两个字符串是否相等的问题。在编程中,通常比较两个字符串是否相同的表达式是“==”,但在java中不能这么写。在java中,用的是equals();
String name = new String("sunzhiyan");String age = new String("sunzhiyan");if(name ==age){ System.out.print("相等");}else{ System.out.print("不相等");}
这里输出结果是:不相等,因为new出来的话会申请不同的地址,而==号就是比较他们的地址(java没有指针,假设是地址)
String name = "sunzhiyan";String age = "sunzhiyan";if(name.equals(age)){ System.out.print("相等");}else{ System.out.print("不相等");}
这里会相等,因为java默认字符串是常量,也就是说a和b的地址(java没有指针,假设是地址)一致
而使用
注意:
equals()比较的是对象的内容(区分字母的大小写格式),但是如果使用“==”比较两个对象时,比较的是两个对象的内存地址,所以不相等。即使它们内容相等,但是不同对象的内存地址也是不相同的。
java中判断两个字符串是否相等的问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。