编程语言
首页 > 编程语言> > 删除Java中的dakuten / handakuten(aka十,,→は)

删除Java中的dakuten / handakuten(aka十,,→は)

作者:互联网

许多日本平假名和假名都有dakuten和handakuten变体.
示例:は变成ば或ぱ(注意゛和゜部分)

问题:在Java中,如何从字符串中删除这些内容?

例如,我要はばぱハバパ1aあア亜成为はははハハハ1aあア亜.

性能很重要.

上下文:将内容与旧系统匹配.

解决方法:

带有(han)dakuten的字符可以分解为基本假名和组合标记,Java在java.text中具有用于该字符的Normalizer类.

String decomposed = Normalizer.normalize(input, Normalizer.Form.NFD);

然后,可以使用replace或replaceAll删除组合的(han)dakuten标记,例如

String noVoicingMarks = decomposed.replace("\u3099", "").replace("\u309A", "");

或者(在我的测试中快一点)

String noVoicingMarks = decomposed.replaceAll("\u3099|\u309A", "");

标签:cjk,unicode-string,converter,diacritics,java
来源: https://codeday.me/bug/20191025/1932527.html