您的位置:首页 > 其它

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

2013-04-16 11:50 537 查看
代码是这样的

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"的前面然后按 → 开始按

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

问题就在这里

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

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

呵呵

遇到这样的问题可以切换编码,然后能定位出问题的地方
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐