我需要将代码点(以整数形式提供)转换为 UTF-8 字节数组(可能表示为 a ByteArrayOutputStream,除非有更有效的表示形式)。上一个问题询问如何通过将算法转换为手写代码来做到这一点,这当然是一种选择,但考虑到 Java 标准库已经有办法做到这一点,最佳实践是尝试使用标准库而不是重复功能。
我知道一种方法:StringBuilder appendCodePoint然后将toString代码点转换为字符串,然后getBytes转换为字节数组,然后将其附加到字节输出流,最终收集到更大的复合字节数组中。
不过,感觉应该有一种更优雅、更高效、步骤更少的方法。
在 Java 中执行此操作的惯用方法是什么?
我能想到的最紧凑的形式是这样的:
static byte[] utf8BytesForCodePoint(int codePoint) {
return Character.toString(codePoint).getBytes(StandardCharsets.UTF_8);
}
Run Code Online (Sandbox Code Playgroud)
StringBuilder这避免了使用创建的额外步骤Character.toString(int codePoint)。
| 归档时间: |
|
| 查看次数: |
50 次 |
| 最近记录: |