将字符串数组值与JavaFX组合框值进行比较的结果不为true
我有一个循环来检查数组中的值,并将它们与组合框中的值进行比较。出于某种原因,即使它们匹配,比较结果也不会为真 以下是循环,添加了系统输出以进行故障排除:将字符串数组值与JavaFX组合框值进行比较的结果不为true,java,javafx,Java,Javafx,我有一个循环来检查数组中的值,并将它们与组合框中的值进行比较。出于某种原因,即使它们匹配,比较结果也不会为真 以下是循环,添加了系统输出以进行故障排除: System.out.println("Race Changed, setting new attribute min/maxes"); int raceIndex = -1; for (int i=0;i<5;i++){ Syste
System.out.println("Race Changed, setting new attribute min/maxes");
int raceIndex = -1;
for (int i=0;i<5;i++){
System.out.println("RaceCheck index i="
+ Integer.toString(i)
+ " raceIndex="
+ Integer.toString(raceIndex)
+ " miscData.raceData[i].raceName="
+ miscData.raceData[i].raceName
+ " cboRace.getValue()="
+ cboRace.getValue()
+ " match found="
+ (miscData.raceData[i].raceName == cboRace.getValue()));
System.out.println("|"+miscData.raceData[i].raceName+"|");
System.out.println("|"+cboRace.getValue()+"|");
if (miscData.raceData[i].raceName == cboRace.getValue()) {
raceIndex = i;
}
}
if (raceIndex < 0) {
// race was not found, default to Human
System.out.println("Race " + cboRace.getValue() + " was not found in racedata");
raceIndex = 0;
}
我使用Java7Update40,组合框使用JavaFX。如何在比较匹配值时将其计算为true?在Java中(在JavaFX中也是如此)对象应与.equals()
方法进行比较,而不是与=
运算符进行比较=
运算符通过引用比较对象,实际上是通过对象的内存地址进行比较。因为String
s也是对象,所以使用
if (miscData.raceData[i].raceName.equals(cboRace.getValue())) {
raceIndex = i;
}
参考如下
if (miscData.raceData[i].raceName.equals(cboRace.getValue())) {
raceIndex = i;
}