Java去除字符串首尾空格并替换中间多个空格为单个的算法
原帖见这里:http://blog.csdn.net/zzcchunter/article/details/6917379#java ,用自己的想法再实现一次别人的思路,楼下请补充,求指点。/**
* 替换字符串中间多个空格为单个空格的方法
* @param str 给定字符串
* @return
*/
public static String RemoveMultipleSpaces(String str){
char[] ch=str.toCharArray();//把目标字符串转成字符数组
String res="";//存放结果
boolean isAdd=false;//保证一个空格只追加一次
for(int i=0;i<ch.length;i++){//遍历每个字符
if(!(ch+"").contains("\u0020")){
res+=ch;isAdd=false;//如果不是空格则追加,并重置isAdd变量为false
}else if(!isAdd){//如果没有添加过空格则追加一个空格,并设置isAdd变量为true,即已添加过
res+=ch;isAdd=true;
}
}
return res;
}
/**
* 去除字符串头尾空格的方法
* @param str 给定字符串
* @return
*/
public static String delFrontAndMiddleSpace(String str){
char[] ch=str.toCharArray();
char headStr=' ';//保存首个不是空格的字符
char bottomStr=' ';//保存最后一个不是空格的字符
int headIndx=0;//保存首个不是空格的字符的位置
int bottomIndx=0;//保存最后一个不是空格的字符的位置
//去除头部空格
for(int i=0;i<ch.length;i++){
if(!(ch+"").contains("\u0020")){//如果不是一个空格
headStr=ch;headIndx=i;break;//记录这个字符和出现的位置,退出循环
}
}
//去除尾部空格
for(int i=ch.length-1;i>=0;i--){
if(!(ch+"").contains("\u0020")){//如果不是一个空格
bottomStr=ch;bottomIndx=i+1;break;//记录这个字符和出现的位置,退出循环
}
}
String res=RemoveMultipleSpaces(str.substring(headIndx,bottomIndx));//调用替换中间多个空格为单个空格的方法
return res;
}
页:
[1]