能不能用写一个方法一次删除指定字符串中不想要的字符,我写了一个但不好,谁能给我优化一下
public static String delString(String inputString,String delStrs)
{
if (inputString==null || inputString.length() ==0) return inputString;
if (delStrs==null || delStrs.length() ==0) return inputString;
inputString = inputString.trim();
String[] strs = strToStrArray(delStrs);
for(int i = 0 ;i <strs.length ; i++){
inputString = inputString.replaceAll(strs[i],"");
}
inputString = inputString.replaceAll(" ","");
inputString = inputString.replaceAll("\\(|\\)", "");
return inputString;
}
最好用正则表达式
public static String delString(String inputString,String delStrs)
{
if (inputString==null || inputString.length() ==0) return inputString;
if (delStrs==null || delStrs.length() ==0) return inputString;
inputString = inputString.trim();
String[] strs = strToStrArray(delStrs);
for(int i = 0 ;i <strs.length ; i++){
inputString = inputString.replaceAll(strs[i],"");
}
inputString = inputString.replaceAll(" ","");
inputString = inputString.replaceAll("\\(|\\)", "");
return inputString;
}
最好用正则表达式
StrUtil.delString("","/,-,_,',(,),&,$,%,=,#,@,!,~");执行这个方法后,空格符号可以都被删除。
public static void main(String[] args) {
String opString = " 中 华 人 民 共 和 国 (人民政府) 万岁!!";
System.out.println(delString(opString,"/,-,_,',(,),&,$,%,=,#,@,!,~");
}
public static String delString(String inputString,String delStrs)
{
if (inputString==null || inputString.length() ==0) return inputString;
if (delStrs==null || delStrs.length() ==0) return inputString;
inputString = inputString.trim(); String[] strs = delStrs.split(","); ///////////////// for(int i = 0 ;i <strs.length ; i++){
inputString = inputString.replaceAll(strs[i],"");
}
inputString = inputString.replaceAll(" ","");
inputString = inputString.replaceAll("\\(|\\)", "");
return inputString;
}}
如果(是全角字符没有关系
可以:
delString(opString,"/,-,_,',(,),&,$,%,=,#,@,!,~"));如果是半角就会出错
应该这样写:
delString(opString,"/,-,_,',\\(,\\),&,$,%,=,#,@,!,~"));
* 删除字符串中指定的字符
* 只要在delStrs参数中出现的字符,并且在inputString中也出现都会将其它删除
* @param inputString 待做删除处理的字符串
* @param delStrs 作为删除字符的参照数据,用逗号分隔。如果要删除逗号可以在这个字符串再加一个逗号
* @return 返回一个以inputString为基础不在delStrs出现新字符串
*/
public static String delString(String inputString,String delStrs)
{
if (inputString==null || inputString.length() ==0) return inputString; String[] strs = strToStrArray(delStrs);
for(int i = 0 ;i <strs.length ; i++){
if(strs[i].equals(""))
inputString = inputString.replaceAll(" ","");
else
{
if(strs[i].compareTo("a")>=0)
inputString = inputString.replaceAll(strs[i],"");
else
inputString = inputString.replaceAll("\\"+strs[i],"");
}
}
if(subCount(delStrs,",")>strs.length)
inputString = inputString.replaceAll("\\,",""); return inputString;
}
strToStrArray这个方法你怎么不一起给出来
public static String[] strToStrArray(String str) {
return strToStrArrayManager(str, ",");
} /**
* 将字符串对象按给定的分隔符separator转象为字符型数组对象
* @param str 待转换的符串对象
* @param separator 字符型分隔符
* @return 字符型数组
*/
public static String[] strToStrArray(String str, String separator) {
return strToStrArrayManager(str, separator);
} private static String[] strToStrArrayManager(
String str,
String separator) { StringTokenizer strTokens = new StringTokenizer(str, separator);
String[] strArray = new String[strTokens.countTokens()];
int i = 0; while (strTokens.hasMoreTokens()) {
strArray[i] = strTokens.nextToken().trim();
i++;
} return strArray;
}