9

例えば ​​-

text = Československá obchodní banka;

text string contains diacritics like Č , á etc.

この文字列 "Československá obchodní banka" と を渡す関数を書きたいと思います function will return true if string contains diacritics else false

Az または az の範囲に収まらない文字を含む分音符号と文字列を別々に処理する必要があります。

1) If String contains diacritics then I have to do some XXXXXX on it.

2) If String contains character other than A-Z or a-z and not contains diacritics  then do some other operations YYYYY.

やり方がわかりません。

4

2 に答える 2

13

知識の1つ:Unicodeにはのコードがありますáが、とで同じ結果が得られる可能性がありaますcombining mark-'

次のように、java.text.Normalizerを使用できます。

public static boolean hasDiacritics(String s) {
    // Decompose any á into a and combining-'.
    String s2 = Normalizer.normalize(s, Normalizer.Form.NFD);
    return s2.matches("(?s).*\\p{InCombiningDiacriticalMarks}.*");
    //return !s2.equals(s);
}
于 2012-07-03T11:16:54.170 に答える
5

ノーマライザークラスはこれを達成できるようです。いくつかの限定されたテストは、

Normalizer.isNormalized(text, Normalizer.Form.NFD)

あなたが必要なものかもしれません。

于 2012-07-03T11:16:24.260 に答える