-3

私は現在EclipseでAndroidアプリの作成に取り組んでいます。現在、私は2つの文字列を持っており、それらが等しいかどうかを確認する必要があります。問題は、文字列が等しいことですが、そうでないことを示しているので、本当にイライラします。

    if (newSource.equals(source)) {
        Log.d("Equal:", "Strings are equal");
    }
    else {
        Log.d("Not Equal: ", "Strings aren't equal");     
    }

これを実行すると、文字列が等しくないことがログ猫に出力されます。log catに両方の文字列を印刷して、それらが100%等しいことを確認しました。誰かが私のコードにエラーを見ることができるかどうか疑問に思っていましたか?ありがとう

4

3 に答える 3

8

文字列が実際には等しくないためです。文字列のバイト表現を確認するには、次のようにします。

System.out.println(Arrays.toString(str1.getBytes()));
System.out.println(Arrays.toString(str2.getBytes()));
于 2012-12-29T19:19:51.230 に答える
3

trim() スペースがある場合はそれを削除するを使用します

if ((newSource.trim()).equals(source.trim()))
于 2012-12-29T19:18:02.317 に答える
1

String.equalsIgnoreCaseを使用してみてください

if (newSource.trim().equalsIgnoreCase(source.trim())) {
      Log.d("Equal:", "Strings are equal");
   }
 else {
        Log.d("Not Equal: ", "Strings aren't equal");     
   }

文字列にスペース、小文字、大文字が含まれている可能性があるため

于 2012-12-29T19:16:01.693 に答える