2013-01-23 110 views
2

我有一个字符串作为文件夹/文件名。我正在创建文件夹,该文件与该字符串。此字符串可能会或可能不会包含一些章程可能不允许创建所需的文件夹或文件在Android中替换字符串中的特殊字符

String folder = "ArslanFolder 20/01/2013"; 

所以我想用“_”

下面是删除这些字符字符

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

这是什么正则表达式?我知道replaceAll();但我想为此创建一个正则表达式。

+0

顺便说一句,你有一个编译器错误,无效的转义序列。 – jlordo

+0

文件夹名称来自JSON中的服务器端 – Arslan

+0

@Arslan:不在文件夹名称中的'ReservedChars'字符串中。 – jlordo

回答

12

使用此代码:

String folder = "ArslanFolder 20/01/2013 ?/'"; 
String result = folder.replaceAll("[|?*<\":>+\\[\\]/']", "_"); 

其结果将是:

ArslanFolder 20_01_2013 _ _ _ 

你没有说空间应该被替换,所以空间在那里......如果有必要完成,你可以添加它。

+0

为什么你在角色课上逃脱了一切? –

+0

@RohitJain thx指出。现在更清洁.. – Kent

0

试试这个:

replaceAll("[\\W]", "_"); 

它将与下划线替换所有非字母数字字符

+0

但我只需要替换特定的字符集 – Arslan

+0

这比他想要的更多的字符。这也是错误的。 – SLaks

1

我用的这一个:

String alphaOnly = input.replaceAll("[^\\p{Alpha}]+",""); 
String alphaAndDigits = input.replaceAll("[^\\p{Alpha}\\p{Digit}]+",""); 

请参阅此链接: Replace special characters

相关问题