文档

Java™教程
隐藏目录
示例用法
路径:国际化
教程:文本处理
章节:Unicode

示例用法

本页包含一些代码片段,展示了一些常见的场景。

通过码点创建一个String

String newString(int codePoint) {
    return new String(Character.toChars(codePoint));
}

通过码点创建一个String - 适用于BMP字符的优化

Character.toChars方法创建了一个临时数组,该数组仅使用一次后即被丢弃。如果这对性能产生了负面影响,可以使用以下适用于BMP字符(由单个char值表示的字符)的优化方法。在该方法中,toChars仅对辅助字符进行调用。

String newString(int codePoint) {
    if (Character.charCount(codePoint) == 1) {
        return String.valueOf(codePoint);
    } else {
        return new String(Character.toChars(codePoint));
    }
}

批量创建String对象

为了创建大量字符串,前一个代码片段的批量版本重用了toChars方法使用的数组。该方法为每个码点创建一个单独的String实例,适用于BMP字符。

String[] newStrings(int[] codePoints) {
    String[] result = new String[codePoints.length];
    char[] codeUnits = new char[2];
    for (int i = 0; i < codePoints.length; i++) {
        int count = Character.toChars(codePoints[i], codeUnits, 0);
        result[i] = new String(codeUnits, 0, count);
    }
    return result;
}

生成消息

格式化API支持辅助字符。以下示例是生成消息的简单方法。

// 推荐使用
System.out.printf("字符 %c 无效。%n", codePoint);

以下方法简单且避免了连接操作,这使得文本更难以本地化,因为并非所有语言都按照英语的顺序将数字值插入字符串。

// 不推荐使用
System.out.println("字符 " + String.valueOf(char) + " 无效。");

上一页: 字符和字符串API
下一页: 设计注意事项