public class S_eaqual {
public static void main(String[] args) {
String s1 = "one", s2 = "two";
if (s1 + s2 == "onetwo") {
System.out.println("Yes..equal");
}
}
}
此类比较显示错误。这不是比较字符串的正确方法吗?
可以使用String
运算符比较两个==
个对象。那么为什么这会出现错误?
答案 0 :(得分:4)
应使用equals
方法比较字符串。
String s1 = "one", s2 = "two";
if("onetwo".equals(s1+s2)) {
System.out.println("Yes..equal");
}
答案 1 :(得分:3)
试试这个......
String s3 = s1 + s2
if(s3.equals("onetwo")) {
...
==
比较它们是否引用同一个对象,s1+s2
的结果不是这种情况,并且字符串上的.equals()
方法比较值是相同的。通常,您只使用==
进行原始值比较。虽然如果您打算检查以确保两个引用指向同一个对象,您可以为对象执行此操作。
答案 2 :(得分:2)
使用(s1+s2).equals("onetwo");
代替
答案 3 :(得分:2)
使用等于:
if (s1.concat(s2).equals("onetwo")) System.out.println("Yes..equal");