今天遇到一个字符串 length出来的长度不对的问题

来源:互联网 发布:液体卫生巾 知乎 编辑:程序博客网 时间:2024/06/05 12:42

代码是这样的


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()));}



我的运行结果

10101010100[-17, -69, -65, 49, 48, 49, 48, 49, 48, 49, 48, 48]

正确应该是

9101010100[49, 48, 49, 48, 49, 48, 49, 48, 48]

郁闷老半天

于是我把我的编码从UTF-8改成GB2312 发现除了中文是正常会变乱码外,连里面的数字都乱码了。

数字我也亲手重新输入过 没有问题


于是猜测是数字和引号之间有问题。


我把光标放在

"101010100"的前面然后按 → 开始按

 发现引号后面要按两次 光标才跳到下一个

问题就在这里

于是把引号和数字一起删掉后重新输入 就对了


奇怪的是 我复制上面的代码会出错,别人复制运行就是对的

呵呵


遇到这样的问题可以切换编码,然后能定位出问题的地方


原创粉丝点击