有一個String是從byte[]過來的,
byte[] buffer=new byte[1024]
……
中间这一段会给buffer里面赋值,然后
String xs=new String(buffer);
debug时我明明看到xs的值是24*
但是用if (xs.endsWith("*"))返回的确是false
为什么?百思不得解
请大家帮忙!

解决方案 »

  1.   

    不要看debug嘛,输出值,和长度试试啊,不行就用.equals()比较一下
      

  2.   

    我觉得如果你的string确实是24*后面看不到什么东西了,原因很可能是一些空格,或者是换行,或者是其他的空白字符导致的。楼主可以看一下你的数据的最后的ascll,看是什么空白字符。
      

  3.   

    你先使用trim() 去掉空格,或者查出长度,charAt(lastChar)进行检测
      

  4.   

    找到原因了,因為new的時候是1024長度,賦值卻只有賦值給前面一部份,所以當然end不是*了!