java非法字符串_JAVA 去除字符串的非法字符

方法一:使用正则表达式,只保留常见字符

String wrongString = "sdfsa f,ds。";

String correct = wrongString.replaceAll("[^0-9a-zA-Z]J*","");匹配结果:

共找到 2 处匹配:

方法二:根据ASCII码匹配,去掉不合法的ASCII码

/**

* 清除ASCII码中的换行符等特殊字符

* @param dirtyString

* @return

*/

public static String cleanString(String dirtyString){

char[] charArray = dirtyString.toCharArray();

String cleanStr = "";

for (char charactor:charArray) {

Integer[] wrongChar={1,2,3,4,5,6,7,8,12,13,14,15,16,17,18,19,20,12,22,23,24,25,26,27,28,29,30,31};

List arr = Arrays.asList(wrongChar);

Integer thisChar = new Integer(charactor);

if(arr.contains(thisChar)){//如果包含非法字符,就跳过

JLogUtils.i("Alex","警告:该字符串包含非法ASCII字符"+dirtyString);

continue;

}else if(thisChar==10){//换行符处理,把换行符换成\n,修复不同android版本不兼容的问题

cleanStr = cleanStr.concat("\n");

}else {//正常字符

cleanStr = cleanStr.concat(String.valueOf(charactor));

}

}

return cleanStr;

}

提供一个常用正则验证函数,只允许数字字母和空格

//判断是否是数字字母和空格

public static boolean checkInput(Context context, String str) {

Pattern p = Pattern.compile("[a-zA-Z0-9\\s]*");

Matcher m = p.matcher(str);

if (!m.find()) {

return false;

} else {

if (m.group(0).length() != str.length()) {

return false;

}

}

return true;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值