将Java字符串转换为ascii
我需要将由特定于某些语言的一些字母组成的将Java字符串转换为ascii,java,ascii,Java,Ascii,我需要将由特定于某些语言的一些字母组成的Strings(如HÄSTDJUR-noteÄ)转换为不带这些特殊字母的String(在本例中为HASTDJUR)。我如何用Java实现它?谢谢你的帮助 这并不是说它听起来怎么样。场景如下-您希望使用该应用程序,但没有瑞典键盘。因此,你不用查看字符映射,而是用拉丁字母表中的典型字母替换特殊字母来键入它。我建议将特殊字符映射到你想要的字符 Ä --> A é --> e A --> A (exactly the same) etc...
String
s(如HÄSTDJUR-noteÄ)转换为不带这些特殊字母的String
(在本例中为HASTDJUR)。我如何用Java实现它?谢谢你的帮助
这并不是说它听起来怎么样。场景如下-您希望使用该应用程序,但没有瑞典键盘。因此,你不用查看字符映射,而是用拉丁字母表中的典型字母替换特殊字母来键入它。我建议将特殊字符映射到你想要的字符
Ä --> A
é --> e
A --> A (exactly the same)
etc...
然后,您可以在文本上调用映射(伪代码):
实际上,您需要为哪些字符映射到ASCII等效字符创建一组规则。我认为您的问题与此相同: 因此答案也是一样的: 解决方案 工具书类 看
HASTDJUR?德国人会期待海斯特朱尔。你似乎假设了一些特定的规则,你能明确地陈述它们吗?还有几个案例供你思考:IJ=>IJ?Æ=>AE?DŽ=>DZ?ß=>ss?Ʀ=>R?ð => ? Δ=>D?@MSalters一旦你看到Haemaelaeinen在什么地方写的,你就不想再把ä转换成ae了……好吧,这是瑞典语,所以我知道会发生什么:)我很不幸,不知道
Ä
听起来像A
还是别的什么谁说这听起来像什么?简而言之,这个问题似乎只是关于去除字母上的装饰。可能不是。我无法从这个问题中推断出这一点。你要继续吗?请看关于这个问题的评论,了解我的意思。您将如何创建这样一个表,以及如何有效地使用它?@MSalters:这是另一个问题。我想可以使用一些预定义的规则来完成。seanizer-我需要测试它,但似乎是解决方案。这似乎不能很好地处理复合字符(Æ,Œ)。@WeckarE。对于连字,还需要一个附加步骤,如下所述:(页末)
for letter in string:
newString += map(letter)
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}]", "")
);