今天在做一个导入功能发现用户导入的数据有特殊符号,于是想着给他去掉,搜了一下发现大多数方法都只保留了字母数字,连中文都去掉了,这很明显不符合我的需求
直接上代码
/**
 * @author Sakura
 * @date 2024/8/27 15:18
 */
public class StringUtil {
    public static String replaceSpecialCharacter(String input) {
        if (input == null || input.isEmpty()) {
            return input;
        }
        // Replace all non-alphanumeric, non-Chinese characters (except spaces) with an empty string
        return input.replaceAll("[^a-zA-Z0-9\\s\\u4e00-\\u9fa5]", "");
    }
    public static void main(String[] args) {
        String input = "Hello,/ 世界! @2024#";
        String result = replaceSpecialCharacter(input);
        System.out.println(result);  // Output: Hello 世界 2024
    }
}
运行一下

可以发现特殊符号没了但是还有空格
 改进一下
/**
 * @author Sakura
 * @date 2024/8/27 15:18
 */
public class StringUtil {
    public static String replaceSpecialCharacter(String input) {
        if (input == null || input.isEmpty()) {
            return input;
        }
        // Replace all non-alphanumeric, non-Chinese characters (including spaces) with an empty string
        return input.replaceAll("[^a-zA-Z0-9\\u4e00-\\u9fa5]", "");
    }
    public static void main(String[] args) {
        String input = "Hello,/ 世界! @2024#";
        String result = replaceSpecialCharacter(input);
        System.out.println(result);  // Output: Hello世界2024
    }
}
再运行一下




















