我正在使用java HashMap
:
public static HashMap<String, String> config = new HashMap<String, String>();
当我打印值时:
System.out.println(config.toString());
结果是:
{key1 = val1, key2 = val2}
但是在打印钥匙时:
public String returnConfigByKey(String key){
String result = "";
result =(String) config.get(key); //key = key1
System.out.println("result " + result);
return result;
}
结果是:
result null
有什么想法吗?
答案 0 :(得分:3)
HashMap.toString()
在键入后不会添加空格。
因此,地图中的键"key1 "
和"key1 "
都以空格结尾。您应该能够使用config.get("key1 ")
答案 1 :(得分:1)
这是Minimal, Complete, and Verifiable example:
HashMap<String, String> config = new HashMap<String, String>();
config.put("key1", "val1");
config.put("key2", "val2");
System.out.println(config);
System.out.println("result " + config.get("key1"));
输出
{key1=val1, key2=val2}
result val1
正如您所看到的,result
打印正常,但地图的打印不显示=
符号周围的任何空格。
所以,看看你展示了什么:
HashMap<String, String> config = new HashMap<String, String>();
config.put("key1 ", " val1");
config.put("key2 ", " val2");
System.out.println(config);
System.out.println("result " + config.get("key1"));
输出
{key1 = val1, key2 = val2}
result null
这完全反映了您所看到的内容,并显示问题是密钥中的尾随空格。