黑马程序员技术交流社区

标题: 代码点和代码单元是怎么回事? [打印本页]

作者: 邓超军    时间: 2012-6-30 09:38
标题: 代码点和代码单元是怎么回事?
本帖最后由 邓超军 于 2012-6-30 09:40 编辑

String类有一个codePointAt方法,查询api时,是这样解释的:“返回指定索引处的字符(Unicode 代码点)。索引引用 char 值(Unicode 代码单元),其范围从 0 到 length() - 1。”。但是我没明白他说的是什么意思,代码点又有什么用?如下面代码
String oFile="白雪.mp3";
  int cp = oFile.codePointAt(1);
  System.out.println(cp);
得到的结果是38634,在书上还有这样一句话:“
如果想要遍历一个字符串,并且依次查看每一个代码点,可以使用一下语句:
int cp = sentence.codePointAt(i);
if (Character.isSupplementaryCodePoint(cp)) i += 2;
else i++; ”
这句又是怎么回事?
作者: 张天天    时间: 2012-6-30 10:41
package luntantest;

public class Test11 {
        public static void main(String[] args) {
                String oFile="白雪.mp3";
                   int cp = oFile.codePointAt(1);
                   String str = "a";
                   String str1 = "A";
                   System.out.println(str1.codePointAt(0));
                   System.out.println(str.codePointAt(0));
                  System.out.println(cp);
        }

}
输出结果是
65
97
38634
很简单我们可以知道返回的是ASCII码
后面的是遍历String类型,每个占用两个字节所以加2
作者: 邓超军    时间: 2012-6-30 11:09
张天天 发表于 2012-6-30 10:41
package luntantest;

public class Test11 {

谢谢!通过你的回答我懂了,谢谢了!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2