在日常开发中,空格、回车、换行符等一些特殊字符经常会困扰着我们对于数据的比较,在存取的时候去除掉这些没有意义的特殊字符就变得非常必要了。对于Java中的String.trim(),它只能去除掉字符串前面和后面的空格一些简单的特殊字符,如果有多个特殊字符的时候,效果非常差,这样就需要我们用一些特殊的方法来进行相应的处理了,这里我们介绍的是通过正则表达式的方式来进行字符串中特殊字符的处理。
首先,我们科普一下正则表达式中的一些特殊字符的表示方法:
\\ 反斜杠
\t 空格 ('\u0009')
\n 换行 ('\u000A')
\r 回车 ('\u000D')
\d 数字等价于[0-9]
\D 非数字等价于[^0-9]
\s 空白符号 [\t\n\x0B\f\r]
\S 非空白符号 [^\t\n\x0B\f\r]
\w 单独字符 [a-zA-Z_0-9]
\W 非单独字符 [^a-zA-Z_0-9]
\f 换页符
\e Escape
...接下来,我们就来实现去除这些特殊字符的一个方法:
/**
* 去除字符串中的空格、回车、换行符、制表符等
* @param str
* @return
*/
public static String replaceSpecialStr(String str) {
String repl = "";
if (str!=null) {
Pattern p = Pattern.compile("\\s*|\t|\r|\n");
Matcher m = p.matcher(str);
repl = m.replaceAll("");
}
return repl;
}
上面的方法是去除字符串中的空格、回车、换行符、制表符这些特殊字符,如果需要去除其它的一些特殊字符,只要在正则表达式中把相应的特殊字符加入进去就好了