今天在做一个导入功能发现用户导入的数据有特殊符号,于是想着给他去掉,搜了一下发现大多数方法都只保留了字母数字,连中文都去掉了,这很明显不符合我的需求
直接上代码
/**
* @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
}
}
再运行一下