java - 两个字符串不相等

标签 java android string equals

我有一个 Question 类,其中包含一些属性,包括位置名称,它是 String。我还有一个 Location 类,它有一些属性和一个名称方法。我想检查两者是否相等,这里有一些方法和结果:

Log.e("", question.getLocation() + ", size:" + question.getLocation().length());
Log.e("", mLocation.getLocationName() + ", size:" + mLocation.getLocationName().length());
Log.e("", "equals: " + question.getLocation().equalsIgnoreCase(mLocation.getLocationName()));
Log.e("", "location equals self: " + mLocation.getLocationName().equalsIgnoreCase(mLocation.getLocationName()));
Log.e("", "question location equals self: " + question.getLocation().equalsIgnoreCase(question.getLocation()));

这是日志:

10-10 19:11:35.618    1893-1893/com.example E/﹕ Machine Room, size:12
10-10 19:11:35.618    1893-1893/com.example E/﹕ Machine Room, size:12
10-10 19:11:35.618    1893-1893/com.example E/﹕ equals: false
10-10 19:11:35.618    1893-1893/com.example E/﹕ location equals self: true
10-10 19:11:35.618    1893-1893/com.example E/﹕ question location equals self: true

我不知道发生了什么以及为什么两个字符串不相等?谁能告诉我吗?

public class Question {
   ...
   private String location;

   public String getLocation() {
    return location;
   }

   public void setLocation(String location) {
    this.location = location;
   }

}

public class Location {
   ...
   private String locationName;

   public String getLocationName() {
     return locationName;
   }

   public void setLocationName(String ln) {
     locationName = ln;
   }
}

它们只有 getter 和 setter,并且不会在其他任何地方进行修改,因此没有任何内容会触及日志之间的两个单词。

解决方案

正如 RC 在评论中提到的: 将两个字符串转储为字节并进行比较,也许该空格不是其中一个字符串上的空格(alt+0160 在 MSWindows 下产生一个“看起来相似”的空格)

最佳答案

RC绝对正确!!! 使用 getBytes() 方法将字符串转换为字节数组 然后使用 Arrays.equals(Byte[],Byte[]); 比较字节数组对象 这是最好的解决方案。

关于java - 两个字符串不相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19305492/

相关文章:

c++ - 将 uint8 的 vector 转换为字符串

Ruby 的字符串 : Escape and unescape a custom character

java - 如何使用反射在运行时更改注释值?

java - Android BLE发送数据

java - 使用oracle函数时如何在mybatis中将参数作为CLOB传递?

java - 如何使用 native Java 库修复多个已弃用的 Http* 类和方法

android - 在mac上为eclipse配置svn客户端进行android开发

c# - 获取字符串中模式的匹配项

java - SWT:不再有控制 handle

java - jax-ws web 服务在 websphere 8.5 中不起作用