1. 程式人生 > >JAVA 過濾非法字元(積累)

JAVA 過濾非法字元(積累)

1、字串轉為char陣列,然後逐一進行判斷,符合的字元保留。

public static String decodeby10(String str) {
    StringBuffer out = new StringBuffer();
    if (str == null || ("".equals(str)))
        return "";
    char[] chars = str.toCharArray();
    for(int i = 0; i < chars.length; i ++) {
        if((chars[i] >= 19968 && chars[i] <= 40869) //中日朝相容形式的unicode編碼範圍: U+4E00——U+9FA5
        || (chars[i] >= 11904 && chars[i] <= 42191)//中日朝相容形式擴充套件
        || (chars[i] >= 63744 && chars[i] <= 64255)//中日朝相容形式擴充套件
        || (chars[i] >= 65072 && chars[i] <= 65103)//中日朝相容形式擴充套件
        || (chars[i] >= 65280 && chars[i] <= 65519)//全形ASCII、全形中英文標點、半寬片假名、半寬平假名、半寬韓文字母的unicode編碼範圍:U+FF00——U+FFEF
        || (chars[i] >= 32 && chars[i] <= 126)//半形字元的unicode編碼範圍:U+0020-U+007e
        || (chars[i] >= 12289 && chars[i] <= 12319)//全形字元的unicode編碼範圍:U+3000——U+301F
        ) {
            out.append(chars[i]);
        }
    }
    String result=out.toString().trim();
    result=result.replaceAll("\\?", "").replaceAll("\\*", "").replaceAll("<|>", "").replaceAll("\\|", "").replaceAll("/", "");
    return result;
}