我有下面的代碼,我寫了擺脫如果然後其他語句巨大的混亂。唯一的問題是,我發現Switch語句不能與字符串一起使用。如何使用字符串切換
有沒有竅門來解決這個問題?
感謝
switch(xpp.getName()) {
case("creature") : attribID = Integer.parseInt(xpp.getAttributeValue(0));
case("name") : elName = xpp.getName(); break;
case("race") : elName = xpp.getName(); break;
case("gender") : elName = xpp.getName(); break;
case("alignment") : elName = xpp.getName(); break;
case("age") : elName = xpp.getName(); break;
case("condition") : elName = xpp.getName(); break;
case("skinColor") : elName = xpp.getName(); break;
case("hairColor") : elName = xpp.getName(); break;
case("size") : elName = xpp.getName(); break;
case("height") : elName = xpp.getName(); break;
case("weight") : elName = xpp.getName(); break;
case("hitPoints") : elName = xpp.getName(); break;
case("armorClass") : elName = xpp.getName(); break;
case("actionPoints") : elName = xpp.getName(); break;
case("magicPoints") : elName = xpp.getName(); break;
case("strength") : elName = xpp.getName(); break;
case("dexterity") : elName = xpp.getName(); break;
case("intelligence") : elName = xpp.getName(); break;
case("weapon") : elName = xpp.getName(); break;
case("armor") : elName = xpp.getName(); break;
case("magicItem") : elName = xpp.getName(); break;
case("attackSpell") : elName = xpp.getName(); break;
case("defenseSpell") : elName = xpp.getName(); break;
case("item1") : elName = xpp.getName(); break;
case("item2") : elName = xpp.getName(); break;
}
是的,使用支持切換字符串的JDK(即Java 7)。 – mre 2012-02-24 18:20:42
重複 - http://stackoverflow.com/questions/338206/switch-statement-with-strings-in-java – 2012-02-24 18:21:42
這僅僅是一個虛擬的代碼嗎?如果不是這樣的話,這個案例看起來很荒謬。上面看起來應該是一個單獨的if-else語句。 – 2012-02-24 18:26:08