2015-10-22 5 views
0

Я две строки, которые я получаю их с этим кодомКак сравнить строки в моем случае (Android)

final String encrypted_id = encryption.encryptOrNull(android_id); 
final String preLoad = preferences.getString("pur", "no"); 

для убедиться, что они равны я Войти их, как это

Log.d("encrypted_id",encrypted_id); 
Log.d("preferences.getString",preferences.getString("pur", "no")); 

и выход LogCat, как это

  D/encrypted_id﹕ wxgNDxqzNWNgYWrE0fxjaU07a54XBFnAToy56MAV1Y0= 
D/preferences.getString﹕ wxgNDxqzNWNgYWrE0fxjaU07a54XBFnAToy56MAV1Y0= 

так я убедиться, что они равны

СЕЙЧАС я хочу, чтобы сравнить их, как этот

if(preLoad.equals(encrypted_id)) 
    { 
     Log.d("app","is premium"); 

    } 
    else { 
     Log.d("app","is not premium"); 
    } 

НО LogCat показать мне это

D/app﹕ is not premium 

В чем проблема?

PS: Я пытался

1 . preLoad.equalsIgnoreCase(encrypted_id)

2 . preLoad.compareTo(encrypted_id)==0

+6

Вы попробовали preLoad.trim(). Equals (encrypted_id.trim()) ??? –

+0

можете ли вы напечатать 'encrypted_id' и' preLoad' внутри else? – ThomasThiebaud

+2

использование equalignore случай, а также обрезать(), а затем проверить – Pavya

ответ

0

изменение:

if(preLoad.equals(encrypted_id)) 
    { 
     Log.d("app","is premium"); 

    } 
    else { 
     Log.d("app","is not premium"); 
    } 

в

if(preLoad.trim().equals(encrypted_id.trim())) 
    { 
     Log.d("app","is premium"); 

    } 
    else { 
     Log.d("app","is not premium"); 
    } 
+0

спасибо stefan. вы меня спасете :) – behrooz

-1

Попробуйте,

if(!preLoad.trim().equals(encrypted_id.trim())) 
{ 
    Log.d("app","is not premium"); 

} 
else { 
    Log.d("app","is premium"); 
} 
+0

тот же ответ, что и мой, только с отрицанием, если условие ... –

+0

stefan прав, зачем использовать это? – behrooz

0

Вы можете попробовать это:

if(stringsCompare(preLoad.trim(),encrypted_id.trim())) 
    { 
     Log.d("app","is premium"); 

    } 
    else { 
     Log.d("app","is not premium"); 
    } 

stringsCompare это процедура, которую я написал для сравнения строк:

public boolean stringsCompare(String firstString, String secondString){ 
      if(firstString.length() != secondString.length()){ 
       //The length of the two strings are not equal 
       return false; 
      }else{ 
       for(int i = 0; i < firstString.length(); i++) 
       { 
        if (firstString.charAt(i) != secondString.charAt(i)) 
        { 
         //Let's log the difference: 
         Log.d("app","Difference at char: "+i+" its value in the first string is: "+firstString.charAt(i)+" and its value in the first string is: "+secondString.charAt(i)); 
         //The strings are not equal 
         return false; 
        } 
       } 
       //All characters were equal 
       return true; 
      } 
} 

В этом случае вы можете увидеть разницу, если есть.

+0

спасибо. но я думаю, что использование equals и trim намного проще. – behrooz

+0

Нет проблем, вы можете получить его как дополнительный ответ :) – Mohammad

Смежные вопросы