我面临奇怪的问题我从数据库中获取字符串并与字符串进行比较,但是当我将它们与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.
由于
答案 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 []),
然后比较它们中的每个元素。
也许你将能够看到差异。