Java字符串比较
问题描述:
我面临奇怪的问题,我从数据库中获取字符串并与字符串进行比较,但是当我将它们与等于运算符进行比较时,它们并不相等。Java字符串比较
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.
感谢
答
使用TRIM(),忽略大小写并包含(如果您的方案支持的话)
答
if(data.getString(2).trim().equals(_qt2.trim())){
Log.i("Found Matching quote", "");
}
我认为data.getString(2)是包含String1中和_qt2包含String2的在你的问题中所述。此外,我recomonded你先检查与
System.out.println(data.getString(2));
和
System.out.println(_qt2);
答
也许字符串不包含什么你认为他们这样做。打印出每个的内容,以确保。请参阅其他答案,了解如何修整空白等。
或者,您可能没有看到预期的日志输出,因为您已将日志消息放入Tag参数中,而不是Message参数。试试这个。
Log.i("My App", "Found matching quote");
答
转换两个字符串成字节[](或CHAR []),
然后在它们的每一个元素进行比较。
也许你将能够看到差异。
尝试使用data.getString(2).trim()。equals(_qt2.trim()) – 2012-02-27 11:46:42
可以显示更多代码吗?也许你可以记录字符串,以确保它们完全平等。 – user717572 2012-02-27 11:47:16
如果data.getString(2)和_qt2具有相同的内容,则if将返回true。您需要展示更多代码,例如表和查询,以及_qt2的声明/定义。 – mindandmedia 2012-02-27 11:47:41