这是我的代码:
String Attr = parser.getAttributeValue(null, "name");
String Text = parser.getText();
if (Attr == "id"){
parser.nextTag();
}else if(Attr == "Lektion"){
vocable.setUnit(Text);
parser.nextTag();
}else if(Attr == "Russisch"){
vocable.setRussian(Text);
parser.nextTag();
}else if(Attr == "Umschrift"){
vocable.setTranscript(Text);
parser.nextTag();
}else if(Attr == "Einzelwort"){
int tf = Integer.parseInt(Text);
Boolean bool = null;
switch (tf){
case 0:
bool= false;
break;
case 1:
bool= true;
break;
}
vocable.setSingleWord(bool);
parser.nextTag();
}else if(Attr == "Deutsch"){
vocable.setGerman(Text);
parser.nextTag();
}
我的xml文件的结构:
<database name="russisch">
<table name="vokabel">
<column name="Lektion">1</column>
<column name="id">1</column>
<column name="Russisch">Как дела?</column>
<column name="Umschrift">kak dilá</column>
<column name="Deutsch">Wie geht’s?</column>
<column name="Einzelwort">0</column>
</table>
<table name="vokabel">
<column name="id">2</column>
<column name="Lektion">1</column>
<column name="Russisch">Очень хорошо!</column>
<column name="Umschrift">ótschin charaschó</column>
<column name="Deutsch">Sehr gut!</column>
<column name="Einzelwort">0</column>
</table>
</database>
如果我试图将属性值与给定的值进行比较,它永远不会返回true,因此if语句永远不会被执行。我试图手动设置弹簧,它工作。因此,我只需要格式化返回的字符串,但我不知道如何。我真的希望有人可以提供帮助
答案 0 :(得分:1)
您无法将字符串与等号运算符进行比较:
Attr == "Einzelwort"
因为String是一个对象。 equals运算符测试两个对象是否是同一个对象,因此您将Attr与不是同一对象的“Einzelwort”进行比较。
相反,使用equals()方法比较String的字符串值。
Attr.equals("Einzelwort")