Java字符串比较

时间:2012-02-27 11:44:43

标签: java android string

我面临奇怪的问题我从数据库中获取字符串并与字符串进行比较,但是当我将它们与equals运算符进行比较时,它们并不相同。

String1 =爱情是两个人都可以玩的游戏,而且都是胜利。 String2 =爱是一个两人可以玩的游戏,并且都赢了。

         Cursor data = database2.query("Quote", fields,  null, null, null, null, null);
         data.moveToFirst();


         for(int i = 0; i < data.getCount() ; i++){
         if(data.getString(2).trim().equals(_qt2.trim())){
              Log.i("Found Matching quote", "");
              data.moveToPosition(i);
          }  
      }

这是日志:

    E/Data 2(8818): Love is a game that two can play and both win.
    E/Data 3(8818): Love is a game that two can play and both win.

由于

4 个答案:

答案 0 :(得分:2)

 if(data.getString(2).trim().equals(_qt2.trim())){
              Log.i("Found Matching quote", "");
          } 

我假设data.getString(2)包含String1,而_qt2包含String2,如您的问题中所述。我还建议你先用

查看
System.out.println(data.getString(2));

System.out.println(_qt2);

答案 1 :(得分:2)

使用trim(),ignorecase和contains(如果你的场景支持它)

答案 2 :(得分:1)

也许字符串不包含您认为他们所做的事情。打印出每个内容,以确保。有关修剪空白等的指导,请参阅其他答案。

或者,您可能没有看到预期的日志输出,因为您已将Log消息放在Tag参数中,而不是Message参数。试试这个。

Log.i("My App", "Found matching quote");

答案 3 :(得分:1)

将两个String转换为byte [](或char []),
然后比较它们中的每个元素。
也许你将能够看到差异。