许多日语平假名和假名都有 dakuten 和 handakuten 变体。
示例:ha 变成 ば 或 ぱ(注意 ゛ 和 ₩ 部分)
问题:如何在 Java 中从字符串中删除这些?
例如,我想让はばぱハパ1aあア亜
变成ハハハハ1aあア亜
。
性能很重要。
上下文:将内容与遗留系统相匹配。
最佳答案
带(汉)打天的字符可以分解为假名和组合标记,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 - 删除 Java 中的 dakuten/handakuten(又名十-十,ぱ→は),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44438261/