关于java中的代码点与代码单元 那你就用两会 subString(a,b)呗,只要你知道开始索引和结束索引,两个单元分别用一次,两个就都返回了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那就出现了乱码。你要用codePointAt功能来判断截断点是否是两个代码单元组成的代码点 比如第二行的第一个符号,是由两个代码单元组成的,而substring这个函数返回的是代码单元,如果substring(1,3), 那不是只返回这个符号的一个代码单元,岂不是乱码? 为什么substring不直接返回代码点呢? 为什么substring不直接返回代码点呢? 如果字符串含有增补代码点的话,这样用的时候岂不是很麻烦,每次都要codePointAt(i);来确定? 为什么substring不直接返回代码点呢? 如果字符串含有增补代码点的话,这样用的时候岂不是很麻烦,每次都要codePointAt(i);来确定?其实根本的问题是Java没有用代码点二是代码单元来组织String。但是这个问题也是历史遗留问题,当年的UTF16规定一个代码点只能有两个代码单元,所以String就这么设计了。后来新加的补充代码才规定某些代码点需要4个代码单元,但是Java不能就这么改了因为1) String太底层了2) 要么导致效率低下,要么导致内存占用增加3) 开发Java的人只需要26个字母以上纯属猜测。不过你可以写一个subStringByCodePoint方法来做这件事情 为什么substring不直接返回代码点呢? 如果字符串含有增补代码点的话,这样用的时候岂不是很麻烦,每次都要codePointAt(i);来确定?其实根本的问题是Java没有用代码点二是代码单元来组织String。但是这个问题也是历史遗留问题,当年的UTF16规定一个代码点只能有两个代码单元,所以String就这么设计了。后来新加的补充代码才规定某些代码点需要4个代码单元,但是Java不能就这么改了因为1) String太底层了2) 要么导致效率低下,要么导致内存占用增加3) 开发Java的人只需要26个字母以上纯属猜测。不过你可以写一个subStringByCodePoint方法来做这件事情Thanks! Swing线程问题 请问我登录数据库时的错误 如果我想从D:\work这个文件夹中加载一个Hello.class用class.forName该如何实现 孙鑫老师的JAVA视频教程有关于数据库连接和操作方面的讲解么? 50分求Jbuilder7.0 Enterprise Trial注册码~~~ 谁能介绍一下吗? 请问java的GUI界面如何实现缩放窗口时组件不跟着变形,100分发上兑现 请教各位大哥!!! 一个关于类继承的问题!! 哈哈,JAVA真是有意思 求教!短信复杂敏感词规则表达式过滤 ArrayList作为方法返回值时
比如第二行的第一个符号,是由两个代码单元组成的,而substring这个函数返回的是代码单元,如果substring(1,3), 那不是只返回这个符号的一个代码单元,岂不是乱码? 为什么substring不直接返回代码点呢?
为什么substring不直接返回代码点呢? 如果字符串含有增补代码点的话,这样用的时候岂不是很麻烦,每次都要codePointAt(i);来确定?
为什么substring不直接返回代码点呢? 如果字符串含有增补代码点的话,这样用的时候岂不是很麻烦,每次都要codePointAt(i);来确定?
其实根本的问题是Java没有用代码点二是代码单元来组织String。但是这个问题也是历史遗留问题,当年的UTF16规定一个代码点只能有两个代码单元,所以String就这么设计了。后来新加的补充代码才规定某些代码点需要4个代码单元,但是Java不能就这么改了因为
1) String太底层了
2) 要么导致效率低下,要么导致内存占用增加
3) 开发Java的人只需要26个字母
以上纯属猜测。不过你可以写一个subStringByCodePoint方法来做这件事情
为什么substring不直接返回代码点呢? 如果字符串含有增补代码点的话,这样用的时候岂不是很麻烦,每次都要codePointAt(i);来确定?
其实根本的问题是Java没有用代码点二是代码单元来组织String。但是这个问题也是历史遗留问题,当年的UTF16规定一个代码点只能有两个代码单元,所以String就这么设计了。后来新加的补充代码才规定某些代码点需要4个代码单元,但是Java不能就这么改了因为
1) String太底层了
2) 要么导致效率低下,要么导致内存占用增加
3) 开发Java的人只需要26个字母
以上纯属猜测。不过你可以写一个subStringByCodePoint方法来做这件事情Thanks!