有人知道一些返回操作系统友好文件名的Java类吗?
问题内容:
我的网页中有一个上传器,但是有些人上传了名为“compañia15%* 09.jpg”的文件,当文件名像那个文件时,我遇到了问题。
我想找到一个返回该示例的类,如下所示:“ compania1509.jpg”。
问题答案:
换句话说,您想摆脱可打印ASCII
范围之外的所有字符吗?您可以为此使用String#replaceAll()
模式[^\x20-\x7e]
。
name = name.replaceAll("[^\\x20-\\x7e]", "");
如果您也想摆脱空格,请\x21
改用。您甚至可以仅将其限制为单词字符。使用\W表示“任何非字”的字符。然后,该名称将仅与字母数字和下划线匹配。
name = name.replaceAll("\\W", "");