我定义一个哈希表如下:
Hashhtable<String, String> dicts = new Hashtable<String, String>();
dicts.put("天", "sky");
String hashstr =(String)dicts.get("天");
但是,返回值为空。
我尝试用其他词,没问题。但“天”字却无法存储,请问为什么?提前致谢。
最佳答案
你只是有不同的字符串。如果您将粘贴从一个字符串复制到另一个字符串,它会起作用:
Hashtable<String, String> dicts = new Hashtable<>(); // no need to repeat the whole type
dicts.put("天", "sky");
String hashstr = dicts.get("天"); // no need to cast here
System.out.println(hashstr); // prints "sky"
请注意,Unicode 充满了您的编辑器可能无法呈现的内容。更准确地说,您的字符串开头有一个不可见的字符(在对 put
的调用中)。无需借助十六进制编辑器即可发现问题的简单方法是在任何文本编辑器中移动光标:它将在第一次点击右箭头时保持在原位。
关于java - android Java哈希表无法存储某些字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19180881/