【发布时间】:2013-02-11 02:57:27
【问题描述】:
在 Java 中,我有一个文件名字符串。我想用'_'替换所有非法字符,但不是a-z、0-9、-、.和_
我尝试了以下代码:但这不起作用!
myString = myString.replaceAll("[\\W][^\\.][^-][^_]", "_");
【问题讨论】:
-
由于标题比实际问题更笼统,我对这个问题的解决方案是使用
filename = URLEncoder(fileName, "UTF-8")作为文件名。此操作的结果始终是有效的文件名。这也允许在文件名上使用URLDecoder获取原始文件名字符 -
无法保证生成的文件名始终有效。 * 不是有效字符。
-
文件名 = URLEncoder(fileName.replaceAll("\\*","%2A"), "UTF-8");