首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从半宽片假名转换为全宽片假名

从半宽片假名转换为全宽片假名
EN

Stack Overflow用户
提问于 2015-02-14 01:31:09
回答 3查看 4.5K关注 0票数 1

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

示例:

  • 字符串"カタカナ“(U+FF76 U+FF80 U+FF76 U+FF85)
  • 转换为“U+30AB U+30BF U+30AB U+30CA”(カタカナ)

我如何在Java中做到这一点?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-02-14 01:49:24

我认为您是在将“半宽度Katakana”Unicode代码转换为它们的常规等价物。

有关信息,包括相关代码点值的列表,请参见此处:

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

  • 将文本放入StringBuilder
  • 迭代生成器中的字符位置
    • 从构建器中获取字符
    • 识别半宽度的片假名字符(通过进行范围检查)
    • 映射到全宽度等价物(通过添加一个偏移量.或使用Map)
    • 更新生成器中的字符

  • 使用更新的构建器的内容;例如,将其转换为String
票数 5
EN

Stack Overflow用户

发布于 2015-05-06 00:20:17

您可以尝试icu4j库。它支持一些音译,包括Halfwidth-FullwidthFullwidth-Halfwidth

示例:

代码语言:javascript
运行
复制
Transliterator t = Transliterator.getInstance("Halfwidth-Fullwidth");
String result = t.transliterate(original);
票数 5
EN

Stack Overflow用户

发布于 2021-05-07 06:34:37

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

它将全宽度字母数字字符转换为半宽和半宽片假名为全宽片假名。

代码语言:javascript
运行
复制
Normalizer.normalize(text, Normalizer.Form.NFKC)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28511458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档