1. ホーム
  2. java

[解決済み] 文字列から非ASCII文字を取り除くにはどうしたらよいですか?

2023-04-27 21:33:27

質問

文字列 "A função" , "Ãugent" のような文字を置換する必要があります。 ç , ã そして Ã には空の文字列が入ります。

文字列からこれらの非ASCII文字を削除するにはどうすればよいですか。

以下の関数を使って実装しようとしたのですが、うまくいきません。 1つの問題は、不要な文字がスペース文字に置き換えられてしまうことです。

public static String matchAndReplaceNonEnglishChar(String tmpsrcdta) {
    String newsrcdta = null;
    char array[] = Arrays.stringToCharArray(tmpsrcdta);
    if (array == null)
        return newsrcdta;

    for (int i = 0; i < array.length; i++) {
        int nVal = (int) array[i];
        boolean bISO =
                // Is character ISO control
                Character.isISOControl(array[i]);
        boolean bIgnorable =
                // Is Ignorable identifier
                Character.isIdentifierIgnorable(array[i]);
        // Remove tab and other unwanted characters..
        if (nVal == 9 || bISO || bIgnorable)
            array[i] = ' ';
        else if (nVal > 255)
            array[i] = ' ';
    }
    newsrcdta = Arrays.charArrayToString(array);

    return newsrcdta;
}

どのように解決するのですか?

これは、すべての非 ASCII の文字を検索します。

String resultString = subjectString.replaceAll("[^\\x00-\\x7F]", "");