Java 特殊字符处理

一)特殊字符

第一类:标点符号

ˇ¨`~ 々~‖∶"'`|·… — ~ - 〃「」『』〖〗【】()[]{}︻︼﹄﹃~ .,: ; ? ! ' - -- ..." "" ‖ &  ~ §

 

第二类:数学序号

ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ①②③④⑤⑥⑦⑧⑨⑩一二三四五六七八九十

 

第三类:数字符号

≈≡≠=≤≥<>≮≯∷±+-×÷/∫∮∝∞∧∨∑∏∪∩∈∵∴⊥‖∠⌒⊙≌∽√

 

第四类:特殊符号

§№☆★○●◎◇◆□■△▲※→←↑↓〓#&@\^_

 

备注:各种符号太多了,还是需要根据实际情况来处理。

 

二)特殊字符处理案例

原因:在项目中做附件上传功能的时候,由于附件下载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));
    }
}

特殊字符处理之后效果图打印:

 

识别二维码关注个人微信公众号

本章完结,待续,欢迎转载!
 
本文说明:该文章属于原创,如需转载,请标明文章转载来源!

你可能感兴趣的:(Java)