有人知道返回操作系统友好文件名的Java类吗?

有人知道返回操作系统友好文件名的Java类吗?,java,linux,file,file-io,Java,Linux,File,File Io,我的网页中有一个上传程序,但是有些人上传了名为“compañia 15%*09.jpg”的文件,当文件名与此类似时,我会遇到问题 我想找到一个类,该类返回类似于这样的内容:“compania1509.jpg”。换句话说,您想去掉该类之外的所有字符吗?为此,您可以与模式[^\x20-\x7e]一起使用 name = name.replaceAll("[^\\x20-\\x7e]", ""); 如果您还想去掉空格,那么从\x21开始。您甚至可以将其限制为仅限单词字符。使用\W指示“任何非单词”字符

我的网页中有一个上传程序,但是有些人上传了名为“compañia 15%*09.jpg”的文件,当文件名与此类似时,我会遇到问题


我想找到一个类,该类返回类似于这样的内容:“compania1509.jpg”。

换句话说,您想去掉该类之外的所有字符吗?为此,您可以与模式
[^\x20-\x7e]
一起使用

name = name.replaceAll("[^\\x20-\\x7e]", "");
如果您还想去掉空格,那么从
\x21
开始。您甚至可以将其限制为仅限单词字符。使用
\W
指示“任何非单词”字符。然后,名称将仅与字母数字和下划线匹配

name = name.replaceAll("\\W", "");

换言之,你想摆脱游戏之外的所有角色吗?为此,您可以与模式
[^\x20-\x7e]
一起使用

name = name.replaceAll("[^\\x20-\\x7e]", "");
如果您还想去掉空格,那么从
\x21
开始。您甚至可以将其限制为仅限单词字符。使用
\W
指示“任何非单词”字符。然后,名称将仅与字母数字和下划线匹配

name = name.replaceAll("\\W", "");

这是解决这个问题的一种方法,但对于许多操作系统来说,这是一种过度的杀伤力。例如,在大多数操作系统上,文件名没有理由不能包含
ñ
。@t.J:那对超级用户来说更像是一个问题/答案:)这是解决问题的一种方法,但对于许多操作系统来说,这太过了。例如,在大多数操作系统上,文件名没有理由不能包含
ñ
。@t.J:那对超级用户来说更像是一个问题/答案:)