2012-02-27 5 views
-2

Я столкнулся с странной проблемой. Я получаю строку из базы данных и сравниваю ее со строкой, но когда я сравниваю их с оператором equals, они не становятся равными.Сравнение Java String

String1 = Love - это игра, в которую могут играть две, и оба побеждают. 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. 

Благодаря

+2

Попробуйте использовать data.getString (2) .trim(). Equals (_qt2.trim()) –

+3

Вы могли бы показать еще какой-нибудь код? И, возможно, вы могли бы написать строки, чтобы вы были уверены, что они полностью равны. – user717572

+2

, если data.getString (2) и _qt2 имеют одинаковое содержимое, if вернет true. вам нужно показать больше кода, например. таблицу и запрос, а также декларацию/определение _qt2. – mindandmedia

ответ

2

Использование отделки(), IGNORECASE и содержит (если ваш сценарий поддерживает)

2
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); 
1

Может быть, строки не содержат то, что вы думаете, что они это делают. Распечатайте содержимое каждого, чтобы убедиться. См. Другие ответы для руководства по прорисовке обрезки и т. Д.

Возможно, вы не видите ожидаемый выход журнала, потому что вы поместили сообщение журнала в параметр тега, а не параметр Message. Попробуйте это вместо этого.

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

Преобразование как строки в байт [] (или обугливается []),
затем сравнить каждый элемент в них.
Возможно, вы сможете увидеть разницу.