一)特殊字符
第一类:标点符号
ˇ¨`~ 々~‖∶"'`|·… — ~ - 〃「」『』〖〗【】()[]{}︻︼﹄﹃~ .,: ; ? ! ' - -- ..." "" ‖ & ~ §
第二类:数学序号
ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ①②③④⑤⑥⑦⑧⑨⑩一二三四五六七八九十
第三类:数字符号
≈≡≠=≤≥<>≮≯∷±+-×÷/∫∮∝∞∧∨∑∏∪∩∈∵∴⊥‖∠⌒⊙≌∽√
第四类:特殊符号
§№☆★○●◎◇◆□■△▲※→←↑↓〓#&@\^_
备注:各种符号太多了,还是需要根据实际情况来处理。
二)特殊字符处理案例
原因:在项目中做附件上传功能的时候,由于附件下载URL中用了附件名称作为URL的一部分,但用户上传的附件名称有各种各样的特殊字符,所以在生成附件下载URL的时候,把所有的特殊字符替换成下划线。
注意:Pattern声明为全局静态变量,能避免每次处理特殊字符时,都需要重新匹配,减少性能的消耗。
实现源码:
package com.oysept.test;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Java特殊字符处理
* @author ouyangjun
*/
public class SpecialCharacter {
// 使用正则表达式, 匹配特殊字符
private static final Pattern pattern = Pattern.compile("[`~!@#$%^&*()+=|{}':;',\\\\[\\\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]");
/**
* 把特殊字符全替换成下划线
* @param character
* @return
*/
public static String getSpecialCharacter(String character) {
Matcher m = pattern.matcher(character);
return m.replaceAll("_").trim();
}
public static void main(String[] args) {
String str = "*adCVs*12.fd'*&899的方法的¥……{}【】。,34_a _0*&水电费()^$$&*).{}AA+.|.)%*(*.[];’“‘”?";
System.out.println("字符串替换前:" + str);
System.out.println("字符串替换后:"+ getSpecialCharacter(str));
}
}
特殊字符处理之后效果图打印:
识别二维码关注个人微信公众号
本章完结,待续,欢迎转载!
本文说明:该文章属于原创,如需转载,请标明文章转载来源!