1 回答

TA貢獻1811條經驗 獲得超6個贊
有幾個錯誤:
1)在你的 for 循環中,更改i < x.length;為i < x[0].length;,否則你只運行了 2 次循環。
2)不要使用比較字符串!=。改為使用equals()。有關更多詳細信息,請參閱此內容。
3)您沒有循環重復要求用戶輸入。將您的代碼更改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開始,你可以像這樣直接創建一個地圖:
Map<String, String> m = Map.of(
"Alabama", "Montgomery",
"Alaska", "Juneau",
"Arizona", "Phoenix"
//and so on...
);
添加回答
舉報