1

これが私のコードです:

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ステートメントが実行されることはありません。手動でスリングを設定しようとしましたが、うまくいきました。したがって、返された文字列をフォーマットする必要があると思いますが、方法がわかりません。誰かが助けてくれることを本当に望んでいます

4

1 に答える 1

1

文字列をequals演算子と比較することはできません。

Attr == "Einzelwort"

Stringはオブジェクトなので。equals演算子は、2つのオブジェクトが同じオブジェクトであるかどうかをテストするため、Attrを同じオブジェクトではない「Einzelwort」と比較しています。

代わりに、Stringの文字列値を比較するequals()メソッドを使用してください。

Attr.equals("Einzelwort")
于 2013-01-25T23:47:26.693 に答える