使用Java语言进行Unicode代理编程(8)
时间:2010-11-20 IBM Masahiko Maedera
其他 API
本小节介绍前面的小节中没有讨论 的代理对相关 API。表 3 展示所有这些剩余的 API。所有代理对 API 都包含在 表 1、2 和 3 中。
表 3. 其他代理 API
类 |
方法/构造函数 |
Character |
static int codePointAt(char[] ach, int index, int limit) |
|
static int codePointBefore(char[] ach, int index) |
|
static int codePointBefore(char[] ach, int index, int start) |
|
static int codePointBefore(CharSequence seq, int index) |
|
static int digit(int cp, int radix) |
|
static int offsetByCodePoints (char[] ach, int start, int count, int index, int cpOffset) |
|
static int offsetByCodePoints (CharSequence seq, int index, int cpOffset) |
|
static char[] toChars(int cp) |
|
static int toChars(int cp, char[] dst, int dstIndex) |
String |
String(int[] acp, int offset, int count) |
|
int indexOf(int cp, int fromIndex) |
|
int lastIndexOf(int cp, int fromIndex) |
StringBuffer |
StringBuffer appendCodePoint (int cp) |
|
int codePointAt(int index) |
|
int codePointBefore(int index) |
|
int codePointCount(int beginIndex, int endIndex) |
|
int offsetByCodePoints(int index, int cpOffset) |
StringBuilder |
StringBuilder appendCodePoint (int cp) |
|
int codePointAt(int index) |
|
int codePointBefore(int index) |
|
int codePointCount(int beginIndex, int endIndex) |
|
int offsetByCodePoints(int index, int cpOffset) |
IllegalFormat
CodePointException |
IllegalFormatCodePointException (int cp) |
|
int getCodePoint() |
清单 11 展示了从一个码位创建一个字符串的 5 种 方法。用于测试的码位是 U+53F1 和 U+20B9F,它们在一个字符串中重复了 100 亿次。清单 11 中的注释部分显示了处理时间:
清单 11. 从一个码位 创建一个字符串的 5 种方法
int cp = 0x20b9f; // CJK Ideograph Extension B
String str1 = new String(new int []{cp}, 0, 1); // processing time: 206ms
String str2 = new String(Character.toChars(cp)); // 187ms
String str3 = String.valueOf(Chara
|