我需要将包含某些特定语言字母(如HÄSTDJUR - noteÄ)的String
转换为String
,而不包含这些特殊字母(在本例中为HASTDJUR)。我怎么能用Java做呢?谢谢你的帮助!
这听起来并不是真的。方案如下 - 您想要使用该应用程序,但没有瑞典语键盘。因此,不是查看字符映射,而是使用拉丁字母表中的典型字母替换特殊字母来键入字符映射。
答案 0 :(得分:49)
我认为您的问题与此问题相同:
Java - getting rid of accents and converting them to regular letters
因此答案也是一样的:
String convertedString =
Normalizer
.normalize(input, Normalizer.Form.NFD)
.replaceAll("[^\\p{ASCII}]", "");
见
final String input = "Tĥïŝ ĩš â fůňķŷ Šťŕĭńġ";
System.out.println(
Normalizer
.normalize(input, Normalizer.Form.NFD)
.replaceAll("[^\\p{ASCII}]", "")
);
<强>输出:强>
这是一个时髦的字符串
答案 1 :(得分:2)
我建议将特殊字符映射到你想要的字符。
Ä --> A
é --> e
A --> A (exactly the same)
etc...
然后你可以调用你的文本映射(伪代码):
for letter in string:
newString += map(letter)
实际上,您需要为哪些字符映射到ASCII等效项创建一组规则。