【发布时间】:2023-03-19 09:39:01
【问题描述】:
我试图这样做:
boolean exit = false;
while(exit==false && convStoreIndex<convStoreLength) {
if(conversionStore[convStoreIndex].getInUnit()==inUnit) {
indexCount++;
exit=true;
}
convStoreIndex++;
}
但是 if 条件永远不会成立,即使两个字符串是相同的(在调试器中检查了这一点)。 所以我添加了一些行:
boolean exit = false;
while(exit==false && convStoreIndex<convStoreLength) {
Log.v("conversionStore["+String.valueOf(convStoreIndex)+"]", conversionStore[convStoreIndex].getInUnit()+"|"+inUnit);
String cs = conversionStore[convStoreIndex].getInUnit();
String iu = inUnit;
Log.v("cs", cs);
Log.v("iu", iu);
Log.v("Ergebnis(cs==iu)", String.valueOf(cs==iu));
if(conversionStore[convStoreIndex].getInUnit()==inUnit) {
indexCount++;
exit=true;
}
convStoreIndex++;
}
这里是 LogCat 的摘录:
09-15 11:07:14.525: VERBOSE/cs(585): kg
09-15 11:07:16.148: VERBOSE/iu(585): kg
09-15 11:07:17.687: VERBOSE/Ergebnis(cs==iu)(585): false
conversionStore 的类:
class ConversionStore {
private String inUnit;
[...]
public String getInUnit() {
return inUnit;
}
}
谁疯了,java还是我?
【问题讨论】:
-
您的标题也具有误导性,因为您没有“kg”=="kg"(我相信这实际上会评估为真)。
-
Und bitte in Zukunft
!exitstattexit == falseschreiben.