-3

我目前正在 Eclipse 中制作 Android 应用程序。目前我有两个字符串,我需要检查它们是否相等,问题是字符串相等,但它显示它们不相等,这让我很沮丧。

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

当我运行它时,它只是在日志 cat 中打印字符串不相等。我已经在 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() which 将消除空格(如果有)

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 回答