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

时间:2015-02-14 01:31:10

标签: java unicode

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

示例:

  • String"カタカナ" (U + FF76 U + FF80 U + FF76 U + FF85)
  • 转换为"カタカナ" (U + 30AB U + 30BF U + 30AB U + 30CA)

我怎样才能用Java做到这一点?

2 个答案:

答案 0 :(得分:4)

我认为你所说的是将“半角片假名”Unicode代码点转换为常规代码点。

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

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

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

答案 1 :(得分:0)

仅使用标准 API (java.text.Normalizer)。 无需第三方解决方案或依赖。

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

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