我在Java中有一个String,带有这样的特殊字符
String string = "Report created with id: [2748], generator:file,
filename:C:\Users\username\AppData\Local\Temp\UnitTestEncryption.csv.pgp"
我需要像上面这样修改String
"Report created with id 2748 generator file
filename C \Users\username\AppData\Local\Temp\UnitTestEncryption.csv.pgp"
用简单的语言,我需要替换除反斜杠“ \”和句点“”之外的所有特殊字符。 我已经检查过此link
但这对我不起作用,特别是对于反斜杠('\')。
答案 0 :(得分:1)
一种简单的方法是遍历字符串,并使用所需的所有字符创建新的字符串。
String original="SOME TEXT";
String newStr="";
for(int i=0;i<original.length();i++){
char ch=original.charAt(i);
if(Character.isLetter(ch) || Character.isDigit(ch) || ch=='\\' || ch=='.'){
newStr+=ch;
}else {
newStr+=" ";
}
}
答案 1 :(得分:0)
您可以创建带有特殊字符的字符串
String special = "&^#@$*" //what you think is special char.
之后,取字符串的每个字符并与特殊字符进行比较。
String myString;
for(int i = 0; i < myString.length; i++){
if( special.contains( myString.charAt(i) + "" ) ){
//TODO
}
}
答案 2 :(得分:0)
string = string.replaceAll("[^a-zA-Z0-9\\\\.]", " ");
只需完成所有您不想替换的课程即可。
您可以添加-和_例如:
string = string.replaceAll("[^a-zA-Z0-9\\\\._-]", " ");
答案 3 :(得分:-1)
您可以在下面的列表中添加所有可以接受的内容,并删除其余字符:
string = string.replaceAll("[^a-zA-Z0-9\s\\.\\\\]+", " ");