比较字符串

时间:2015-07-07 21:36:54

标签: java string fonts

我有一个外语词典,我加载到地图中,用户将输入翻译条件;这是每个基本的。但是,由于用户和字典(这是一个平面文本文件)的字体类型,我遇到了map look(map.get(“term”))的问题。它们是不同的,由于字体的不同,大约有1/3的术语找不到。例如(字体不会显示,所以我包含了uri编码值以显示差异.URI编码不是我正在寻找的解决方案)

String a1 = "A";// uri encode value \uff21
String a2 = "A";// uri encode value \u0041
Boolean a3 = a1.equals(a2);
System.out.println(a3); // false

字典文件非常大,在将其加载到地图之前,我没有奢侈的数据清理功能。我无法找到任何会处理此类问题的字符串函数或API。有没有人遇到过这个问题,任何人都可以提供一些关于如何在忽略字体的同时比较字符串的想法吗?

1 个答案:

答案 0 :(得分:4)

您可以使用Java的Collat​​or类:

Collator c = Collator.getInstance(Locale.US);
c.setStrength(Collator.IDENTICAL);
c.setDecomposition(Collator.FULL_DECOMPOSITION);
boolen a3 = c.equals(a1, a2); // should be true now

有关详细信息,请参阅https://docs.oracle.com/javase/7/docs/api/java/text/Collator.html