public static void main(String[] args) throws UnsupportedEncodingException {
String name= "test%dasda da&sda s / \\ \" : | * ? < >.mp4";
/* System.out.println(name.replaceAll("\\s*",""));
System.out.println(FilenameUtils.getPrefix(name));*/
Pattern pattern = Pattern.compile("[\\s\\\\/:\\*\\?\\\"<>\\|]");
Matcher matcher = pattern.matcher(name);
String name1 = matcher.replaceAll("");
String name2 = name.replaceAll("[\\s\\\\/:\\*\\?\\\"<>\\|]","");
// 使用Spring提供的工具类UriUtils
String name3 = UriUtils.encode(name,"UTF-8");
System.out.println(name1);
System.out.println("------------");
System.out.println(name2);
System.out.println("------------");
System.out.println(name3);
}
结果:
test%dasdada&sdas.mp4
------------
test%dasdada&sdas.mp4
------------
test%25dasda%20da%26sda%20%20s%20%2F%20%5C%20%22%20%3A%20%7C%20%2A%20%3F%20%3C%20%3E.mp4
推荐使用第二种
本文介绍了一种在Java中处理文件名中非法字符的方法,通过正则表达式匹配并替换不合法的文件名字符,确保文件名在各种操作系统中都能正确创建。文章对比了三种不同的方法:使用正则表达式替换、使用Spring的UriUtils工具类进行URL编码,并推荐了第二种方法。
516

被折叠的 条评论
为什么被折叠?



