java如何判断字符是否含有特殊字符?

如题所述

一般都是使用正则表达式,如下代码:
public static final String DEFAULT_QUERY_REGEX = "[!$^&*+=|{}';'\",<>/?~!#¥%……&*——|{}【】‘;:”“'。,、?]";

/**
* 判断查询参数中是否以特殊字符开头,如果以特殊字符开头则返回true,否则返回false
*
* @param value
* @return
* @see {@link #getQueryRegex()}
* @see {@link #DEFAULT_QUERY_REGEX}
*/
public boolean specialSymbols(String value) {
if (StringUtil.isBlank(value)) {
return false;
}
Pattern pattern = Pattern.compile(getQueryRegex());
Matcher matcher = pattern.matcher(value);

char[] specialSymbols = getQueryRegex().toCharArray();

boolean isStartWithSpecialSymbol = false; // 是否以特殊字符开头
for (int i = 0; i < specialSymbols.length; i++) {
char c = specialSymbols[i];
if (value.indexOf(c) == 0) {
isStartWithSpecialSymbol = true;
break;
}
}

return matcher.find() && isStartWithSpecialSymbol;
}

/**
* 获取查询过滤的非法字符
*
* @return
*/
protected String getQueryRegex() {
return DEFAULT_QUERY_REGEX;
}
温馨提示:答案为网友推荐,仅供参考
相似回答