读书人

温习Java核心技术卷1第3章Cod

发布时间: 2012-10-09 10:21:45 作者: rapoo

复习Java核心技术——卷1,第3章,Code Point
趁着国庆节放假,好好复习一下Java核心技术这本好书。

/** * 实验表明,GBK比UTF-8所需要的codepoint更多,和UTF-16差不多。 * 一个代码点(code point)可能有一到两个代码单元(code unit) * @author Roy Zhang * */public class TestCodePoint{    public static void main(String[] args)    {        String greeting = "Hello★";        int n = greeting.length();        System.out.println(n); // is 5.        int cpCount = greeting.codePointCount(0, greeting.length());        System.out.println(cpCount); // is 5.        char first = greeting.charAt(0);        System.out.println(first); // is H        char last = greeting.charAt(greeting.length() - 1);        System.out.println(last); // UTF-16 and GBK will show ★        for (int i = 0; i < greeting.codePointCount(0, greeting.length()); i++)        {            int index = greeting.offsetByCodePoints(0, i);            int cp = greeting.codePointAt(index);            System.out.println(cp);// they are: 72, 101, 108, 108, 111, 9733        }        for (int i = 0; i < greeting.codePointCount(0, greeting.length()); )        {            int cp = greeting.codePointAt(i);            System.out.println(greeting.charAt(i));// they are: H, e, l, l, o, ★            if (Character.isSupplementaryCodePoint(cp))            {                // It does not work.                i = i + 2;            }            else            {                i++;            }        }    }}

读书人网 >编程

热点推荐