从半角片假名转换为全角片假名
Converting from half-width katakana to full-width katakana
我需要将半角片假名字符转换为全角字符。
示例:
- 字符串“タナ”(U+FF76 U+FF80 U+FF76 U+FF85)
- 转换为“カタカナ”(U+30AB U+30BF U+30AB U+30CA)
如何在 Java 中执行此操作?
我认为您是在谈论将“半角片假名”Unicode 代码点转换为其常规等价物。
请参阅此处了解信息,包括相关代码点值的列表:
我不知道是否有推荐的方法(例如标准 API 或第 3 方库),但您可以轻松地编写一些代码来:
- 将文本放入
StringBuilder
- 迭代构建器中的字符位置
- 从构建器中获取角色
- 识别半角片假名字符(通过范围检查)
- 将 映射到全角等效项(通过添加偏移量...或使用
Map
)
- 更新生成器中的角色
- 使用更新后的构建器的内容;例如把它变成
String
.
您可以试试 icu4j 库。它支持a number of transliterations,包括Halfwidth-Fullwidth
和Fullwidth-Halfwidth
。
示例:
Transliterator t = Transliterator.getInstance("Halfwidth-Fullwidth");
String result = t.transliterate(original);
仅使用标准 API (java.text.Normalizer)。
不需要第 3 方解决方案或依赖项。
它将全角字母数字字符转换为半角和半角片假名转换为全角片假名
Normalizer.normalize(text, Normalizer.Form.NFKC)
我需要将半角片假名字符转换为全角字符。
示例:
- 字符串“タナ”(U+FF76 U+FF80 U+FF76 U+FF85)
- 转换为“カタカナ”(U+30AB U+30BF U+30AB U+30CA)
如何在 Java 中执行此操作?
我认为您是在谈论将“半角片假名”Unicode 代码点转换为其常规等价物。
请参阅此处了解信息,包括相关代码点值的列表:
我不知道是否有推荐的方法(例如标准 API 或第 3 方库),但您可以轻松地编写一些代码来:
- 将文本放入
StringBuilder
- 迭代构建器中的字符位置
- 从构建器中获取角色
- 识别半角片假名字符(通过范围检查)
- 将 映射到全角等效项(通过添加偏移量...或使用
Map
) - 更新生成器中的角色
- 使用更新后的构建器的内容;例如把它变成
String
.
您可以试试 icu4j 库。它支持a number of transliterations,包括Halfwidth-Fullwidth
和Fullwidth-Halfwidth
。
示例:
Transliterator t = Transliterator.getInstance("Halfwidth-Fullwidth");
String result = t.transliterate(original);
仅使用标准 API (java.text.Normalizer)。 不需要第 3 方解决方案或依赖项。
它将全角字母数字字符转换为半角和半角片假名转换为全角片假名
Normalizer.normalize(text, Normalizer.Form.NFKC)