有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java中的字符串比较“=”有什么问题?

Possible Duplicate:
Java String.equals versus ==

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对象。那么,为什么这会显示错误呢


共 (4) 个答案

  1. # 1 楼答案

    使用等于

    if (s1.concat(s2).equals("onetwo")) System.out.println("Yes..equal");
    
  2. # 2 楼答案

    改用(s1+s2).equals("onetwo");

  3. # 3 楼答案

    应使用equals方法比较字符串

    String s1 = "one", s2 = "two";
    if("onetwo".equals(s1+s2)) {
      System.out.println("Yes..equal");
    }
    
  4. # 4 楼答案

    试试这个

    String s3 = s1 + s2
    if(s3.equals("onetwo")) {
    ...
    

    ==比较它们是否引用了相同的对象,并且s1+s2的结果在本例中不是这样的,字符串上的.equals()方法比较值是否相同。通常,您仅使用==进行原语值比较。尽管您可以对对象执行此操作,但前提是要检查以确保两个引用指向同一对象