特定の言語に固有のいくつかの文字(HÄSTDJUR-noteÄなど)で構成されるString
sを、それらの特別な文字(この場合はHASTDJUR)のないString
に変換する必要があります。 Javaでそれを行うにはどうすればよいですか?手伝ってくれてありがとう!
それは実際にはそれがどのように聞こえるかについてではありません。シナリオは次のとおりです。アプリケーションを使用したいが、スウェーデン語のキーボードがありません。したがって、文字コード表を見る代わりに、特殊文字をラテンアルファベットの一般的な文字に置き換えて入力します。
あなたの質問はこれと同じだと思います:
したがって、答えも同じです。
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同等のものにマップされるかについての一連のルールを作成する必要があります。