删除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", "");
上一篇:java-在小程序中显示中文文本


下一篇:android-如何在Textview上显示韩国文字?