用String.equals(String s)方法比较。

解决方案 »

  1.   

    if (inbuf.substring(0, CHAT_PROBLEM_FLAG.length()).equals(CHAT_PROBLEM_FLAG))
      

  2.   

    你把==换成equals()方法试试看。==符号是判断两个对象句柄是否相等(也就是两个句柄是否指向同一个对象),equals()方法的返回值跟实现有关系,不过就String来说,equals()方法首先判断两个字串局柄是否相等,如果不等,再判断内容是否相同。
      

  3.   

    String.equals()方法比较的是字符串的内容。使用了equals()方法,会对字符串中的所有字符一个接一个地进行比较,如果完全相等,那么返回true.
    而运算符==比较的是String对象的引用如:
    String s0="abc";
    String s1=new String("abc");
    String s2="a"+"b"+"c";s0.equals(s1);      ---->true
    s0.equals(s2);      ---->true
    s0==s1;             ---->false
    s0==s2;             ---->true在这里你或许对s0==s2为true有疑问,这是因为
    "abc","a","b","c"是字符串常量,它们在编译期就被确定了。
    如s2,它同样在编译期就被解析为一个字符串常量。
    Java确保一个字符串常量只有一份拷贝,所以当
    "abc"和"a"+"b"+"c"被确定为值相等时,当JVM执行了常量池解析的操作,
    Java会设置两个变量的引用为同一个常量的引用。
    在constant pool即常量池(在编译期被确定,并已被保存在已编译的.class文件中的一些数据,它包含了方法、类、接口、字符串常量等)中,Java会跟踪所有的字符串常量。
      

  4.   

    你的程序的SIZE,是怎样写的?贴出来看看
      

  5.   

    boolean String.equals(String anotherString)
      

  6.   

    字符串比较 if(a.equals("a"))
    null比较 if(a==null)
    数值 if(1==1)
      

  7.   

    ==是一个操作符。equals是Object的一个方法。没有被覆盖的话,他就是用==做比较。==用在对象间,比较的是这两个对象是不是同一个对象(java上看是不是同一个句柄)。String覆盖了equals方法,用来判断两个字符串对象内容是不是相同。我想我的解释应该让你明白了为什么了
      

  8.   

    用 String.equals(s2)方法
      

  9.   

    用equals最稳妥了。
      大江分析太精辟了,学习!