代码是这样的
public static void main(String[] args) {
HashMap<String, String> cityMap = new HashMap<String, String>();
cityMap.put("北京", "101010100");
String codeid = cityMap.get("北京");
System.out.println(codeid.length());
System.out.println(codeid);
System.out.println(Arrays.toString(codeid.getBytes()));
}
我的运行结果
10
101010100
[-17, -69, -65, 49, 48, 49, 48, 49, 48, 49, 48, 48]
正确应该是
9
101010100
[49, 48, 49, 48, 49, 48, 49, 48, 48]
郁闷老半天
于是我把我的编码从UTF-8改成GB2312 发现除了中文是正常会变乱码外,连里面的数字都乱码了。
数字我也亲手重新输入过 没有问题
于是猜测是数字和引号之间有问题。
我把光标放在
"101010100"的前面然后按 → 开始按
发现引号后面要按两次 光标才跳到下一个
问题就在这里
于是把引号和数字一起删掉后重新输入 就对了
奇怪的是 我复制上面的代码会出错,别人复制运行就是对的
呵呵
遇到这样的问题可以切换编码,然后能定位出问题的地方