What exactly does String.codePointAt do?
最近,我遇到了Java中String的codePointAt方法。 我还发现了其他一些codePoint方法:
现在,我想知道何时以及如何使用
简短的答案:它为您提供了从
更长的答案:Java是在16位(也称为
解决方案是UTF-16:它以16位(即正好为一个
现在,只要您不使用任何"新" Unicode字符(或不太在乎它们),就可以使用所有"旧"方法(仅处理
注意:Emojis是不在BMP中的unicode字符的一个众所周知的示例(即,仅在使用codepoint变体时才起作用)是Emojis:即使是简单的咧嘴笑脸? U + 1F600不能用单个
代码点支持65535以上的字符,即Character.MAX_VALUE。
如果您的文字具有如此高的字符,则必须使用代码点或
通过支持UTF-16可以做到这一点,它可以使用一个或两个16位char并将其转换为
AFAIK,通常只有最近添加的补充多语言字符和表意文字(例如非繁体中文)才需要。
简而言之,只要您在Java中使用默认字符集,就很少用:)但是要获得更详细的解释,请尝试以下文章:
将字符与代码点进行比较?
http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Character.html
http://javarevisited.blogspot.com/2012/01/java-string-codepoint-get-unicode.html
希望这有助于为您澄清事情:)