从半角片假名转换为全角片假名

Converting from half-width katakana to full-width katakana

我需要将半角片假名字符转换为全角字符。

示例:

如何在 Java 中执行此操作?

我认为您是在谈论将“半角片假名”Unicode 代码点转换为其常规等价物。

请参阅此处了解信息,包括相关代码点值的列表:

我不知道是否有推荐的方法(例如标准 API 或第 3 方库),但您可以轻松地编写一些代码来:

  • 将文本放入 StringBuilder
  • 迭代构建器中的字符位置
    • 从构建器中获取角色
    • 识别半角片假名字符(通过范围检查)
    • 将 映射到全角等效项(通过添加偏移量...或使用 Map
    • 更新生成器中的角色
  • 使用更新后的构建器的内容;例如把它变成 String.

您可以试试 icu4j 库。它支持a number of transliterations,包括Halfwidth-FullwidthFullwidth-Halfwidth

示例:

Transliterator t = Transliterator.getInstance("Halfwidth-Fullwidth");
String result = t.transliterate(original);

仅使用标准 API (java.text.Normalizer)。 不需要第 3 方解决方案或依赖项。

它将全角字母数字字符转换为半角和半角片假名转换为全角片假名

Normalizer.normalize(text, Normalizer.Form.NFKC)