文字または数字以外の文字を削除して文字列を除外するプログラムがあります。このプログラムは、中国語、ロシア語、アラビア語などを含む多数の言語をサポートしています。プログラムは次のとおりです。
StringBuilder strBuilder = new StringBuilder();
for (int i = 0; i < src.length(); i++) {
int ch = src.codePointAt(i);
if (Character.isLetterOrDigit(ch)) {
strBuilder.appendCodePoint(ch);
}
}
メソッドを使用codePointAt
して、上位サロゲートと下位サロゲートを介して UTF 32 ビットで表現される文字をサポートします。フィルタリングを実行する前に、各文字列を正規化する必要があるかどうかを知る必要がありますか? Normalizer.normalize
ループを実行する前にメソッドを呼び出すことを指しています。はいの場合、どちらNormalizer.Form
を使用すればよいですか?
ありがとう。