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...
);
添加回答
举报