gpt4 book ai didi

java - 无法判断输入是否结束

转载 作者:行者123 更新时间:2023-12-01 10:36:32 26 4
gpt4 key购买 nike

我有以下输入。

    3
sam
99912222
tom
11122222
harry
12299933
sam
edward
harry
mark
john

这是我的代码

public static void main(String[] argh) {
Map<String, Integer> map = new HashMap<String, Integer>();
List<String> keyList, outputList = new LinkedList<String>();
Scanner in = new Scanner(System.in);
int N = in.nextInt();
for (int i = 0; i < N; i++) {
String name = in.next();
int phone = in.nextInt();
in.nextLine();
map.put(name, phone);
}
keyList = new ArrayList<String>(map.keySet());
String s = in.nextLine();
while (in.hasNext()) {
if (keyList.contains(s)) {
outputList.add(s + "=" + map.get(s));
} else {
outputList.add("Not found");
}
s = in.nextLine();
}
in.close();
for (int i = 0; i < outputList.size(); i++) {
System.out.println(outputList.get(i));
}
}

我的问题是我无法确定输入是否已结束,因为 while (in.hasNext()) {最后一次输入后卡住。最后一次输入后如何关闭扫描仪?

enter image description here

最佳答案

你的while循环应该是:

while (in.hasNextLine()) {
String s = in.nextLine();
if (s.isEmpty())
break;
if (keyList.contains(s)) {
outputList.add(s + "=" + map.get(s));
} else {
outputList.add("Not found");
}
}

这样输入中的空行表示输入结束,这意味着您只需再次按 Enter 即可退出程序。

关于java - 无法判断输入是否结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34692131/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com