Java 在Android中替换字符串中的特殊字符

Java 在Android中替换字符串中的特殊字符,java,regex,Java,Regex,我有一个字符串作为文件夹/文件名。我正在创建带有该字符串的文件夹、文件。此字符串可能包含也可能不包含某些不允许创建所需文件夹或文件的特许 e、 g 因此,我想删除带有“\u”的这些字符。 这里有一些人物 private static final String ReservedChars = "|\?*<\":>+[]/'"; private static final String ReservedChars=“| \?*试试这个: replaceAll("[\\W]", "_")

我有一个字符串作为文件夹/文件名。我正在创建带有该字符串的文件夹、文件。此字符串可能包含也可能不包含某些不允许创建所需文件夹或文件的特许

e、 g

因此,我想删除带有“\u”的这些字符。

这里有一些人物

private static final String ReservedChars = "|\?*<\":>+[]/'"; 
private static final String ReservedChars=“| \?*试试这个:

replaceAll("[\\W]", "_");
它将用下划线替换所有非字母数字字符使用以下代码:

String folder = "ArslanFolder 20/01/2013 ? / '";
String result = folder.replaceAll("[|?*<\":>+\\[\\]/']", "_");
您没有说应该替换空格,所以空格就在那里……如果有必要,您可以添加它。

我使用了以下方法之一:

String alphaOnly = input.replaceAll("[^\\p{Alpha}]+","");
String alphaAndDigits = input.replaceAll("[^\\p{Alpha}\\p{Digit}]+","");
请参阅此链接:
这是正确的解决方案:

String result = inputString.replaceAll("[\\\\|?\u0000*<\":>+\\[\\]/']", "_");

String result=inputString.replaceAll(“[\\\\\\\\\?\u0000*”),但我只需要替换一组特定的字符sbtw,您有一个编译器错误,转义序列无效。文件夹名称来自JSON@Arslan:不在文件夹名称中,
ReservedChars
字符串中。为什么在字符类中转义所有内容?
String alphaOnly = input.replaceAll("[^\\p{Alpha}]+","");
String alphaAndDigits = input.replaceAll("[^\\p{Alpha}\\p{Digit}]+","");
String result = inputString.replaceAll("[\\\\|?\u0000*<\":>+\\[\\]/']", "_");