将 Java String 转换为 ascii
我需要将由某些语言(如HÄSTDJUR - note Ä)特定的一些字母组成的s转换为没有这些特殊字母的a(在本例中为HASTDJUR)。我该如何在Java中做到这一点?感谢您的帮助!String
String
这与它听起来如何无关。场景如下 - 您想要使用该应用程序,但没有瑞典语键盘。因此,您无需查看字符映射表,而是通过将特殊字母替换为拉丁字母表中的典型字母来键入它。
我需要将由某些语言(如HÄSTDJUR - note Ä)特定的一些字母组成的s转换为没有这些特殊字母的a(在本例中为HASTDJUR)。我该如何在Java中做到这一点?感谢您的帮助!String
String
这与它听起来如何无关。场景如下 - 您想要使用该应用程序,但没有瑞典语键盘。因此,您无需查看字符映射表,而是通过将特殊字母替换为拉丁字母表中的典型字母来键入它。
我认为您的问题与此问题相同:
因此,答案也是相同的:
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}]", "")
);
输出:
这是一个时髦的字符串
我建议将特殊字符映射到您想要的字符。
Ä --> A
é --> e
A --> A (exactly the same)
etc...
然后,您可以对文本(在伪代码中)调用映射:
for letter in string:
newString += map(letter)
实际上,您需要为哪些字符映射到 ASCII 等效项创建一组规则。