gpt4 book ai didi

java - 使用值(带空格)从 Hashmap 中查找键

转载 作者:行者123 更新时间:2023-12-02 02:34:52 24 4
gpt4 key购买 nike

在这里,我试图从 Hashmap 中的值获取键,但每当我尝试“大不列颠及北爱尔兰联合王国”时,它应该返回“GBR”。它向我显示“未找到记录”。怎么解决这个问题。任何帮助将不胜感激。

(在这里,如果您输入国家/地区代码,则会返回国家/地区名称,如果您输入国家/地区名称,则会返回国家/地区代码。)

public class AppliedWithCS_1 {

public static Object getKeyFromValue(HashMap hashMap, Object value) {
for (Object o : hashMap.keySet()) {
if (hashMap.get(o).equals(value)) {
return o;
}
}
return null;
}

public static void main(String[] args) {

HashMap hashMap=new HashMap<>();
hashMap.put("AFG","Afghanistan");
hashMap.put("GBR","United Kingdom of Great Britain and Northern Ireland");
hashMap.put("IDN","Indonesia");
hashMap.put("IND","India");
System.err.println("Enter Country Code or Country Name=");
Scanner scanner=new Scanner(System.in);
String s1=scanner.next();
if(s1.length()>3&&hashMap.containsValue(s1))
{
System.out.println(getKeyFromValue(hashMap,s1));
}
else if(hashMap.containsKey(s1))
System.err.println(hashMap.get(s1));
else
System.err.println("No Records Found");
}
}

输出:

   Enter Country Code or Country Name=
Afghanistan
AFG

Enter Country Code or Country Name=
United Kingdom of Great Britain and Northern Ireland
No Records Found

最佳答案

您必须使用String s1 = Scanner.nextLine();,而不是String s1 = Scanner.next();

它会工作并输出:GBR

<小时/>

因为next() (from the doc)默认情况下将使用空格作为分隔符,因此只需要第一个单词

在您的情况下,在String s1 = Scanner.next();之后,s1只是United

关于java - 使用值(带空格)从 Hashmap 中查找键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46533285/

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