1 回答

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超6個贊
有幾個錯誤:
1)在你的 for 循環(huán)中,更改i < x.length;為i < x[0].length;,否則你只運(yùn)行了 2 次循環(huán)。
2)不要使用比較字符串!=。改為使用equals()。有關(guān)更多詳細(xì)信息,請參閱此內(nèi)容。
3)您沒有循環(huán)重復(fù)要求用戶輸入。將您的代碼更改main()為:
Scanner input = new Scanner(System.in);
HashMap<String, String> hMap = getInfo();
String state = "";
do {
System.out.print("Enter a state, or \"done\" when finished: ");
state = input.next();
System.out.println("The capital is " + hMap.get(state));
} while (!state.equals("done"));
4)使用接口,而不是類。所以改變
HashMap<String, String> hMap = getInfo();
至
Map<String, String> hMap = getInfo();
并更新方法簽名以返回Map<String, String>。
5)從Java 9開始,你可以像這樣直接創(chuàng)建一個地圖:
Map<String, String> m = Map.of(
"Alabama", "Montgomery",
"Alaska", "Juneau",
"Arizona", "Phoenix"
//and so on...
);
添加回答
舉報(bào)