我有一個問題類,其中包含一些屬性,包括位置名稱,它是字符串。我也有一個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,他們沒有修改任何地方,所以沒有任何東西觸及日誌之間的兩個詞。
SOLUTION
由於RC在評論中提到: 轉儲上述兩個字符串作爲字節和比較,或許空間不是在字符串中的一個(空間ALT + 0160產生空間「極爲相象「在MSWindows下)
您聲明「所以我對某些屬性有疑問,並且其位置名稱是String。」問題是否有Location對象和locationName屬性?如果是這樣的話,當你註銷它時,Location對象可能會顯示它的toString()方法,但比較結果是將位置對象與一個字符串對象進行比較? – Diver
我根據所用的措辭和question.getLocation()調用詢問了上述問題。 – Diver
@Diver好點。儘管'equalsIgnoreCase()'在將'location'與自身進行比較或拋出異常(可能是編譯時錯誤)時會給出'false'。 – iamnotmaynard