你把if(str==s)改成:if(str.equals(s))试试,应该没有问题

解决方案 »

  1.   

    谢谢!
    我试一下。
    不过能说一下为什么吗?
    == 与 equals()的不同。
      

  2.   

    你用"str1==str2"的时候,将检查两个String变量是否引用了相同的字符串,
    要判断两个字符串是否相等要用equals()函数.
      

  3.   

    老兄:你一定要搞清楚,字符串内容相等和对象相等的异同!在java中判定变量或对象的数据相等,一定用equals,如自己实现一个类,也记住要写一个equals方法。==一般指驻留在同一地址的对象。equals一般指对象数据相等,你可以根据自己的相等标准,重载equals方法,如:字符串相等,你可以认为字符个数相同就是相等。但对象相等就由不得你啦!public class  MyStr
    {
        String   s="";
        public MyStr(String s)
        {
            this.s=s;
        }
        public boolean  equals(MyStr  obj)
        {
            if(obj.strLen()==s.length())
            {
                  return true;
            }
            return false;
        }    public int strLen()
        {
             return s.length();
        }    public static void main(String[] args)
        {
    MyStr   str1=new MyStr("i love you");
    MyStr   str2=new MyStr("i hate you");
    if(str1.equals(str2))
    {
    System.out.println("相等咯!");
    }
    }
    }