我定义一个哈希表如下:
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
)。在不使用十六进制编辑器的情况下发现问题的一种简单方法是在任何文本编辑器中移动光标:它会在第一次点击右箭头时保持原位。
把这个字符放到Hashtable
. 看看以下
Hashtable<String, String> dicts = new Hashtable<String, String>();
dicts.put("天", "sky");
System.out.println(dicts.size());
这将打印1
. 所以现在我们可以看到它正在存储
可能是其他一些问题。