gwl3323405 发表于 2012-8-10 22:39:29

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]
查看完整版本: Java去除字符串首尾空格并替换中间多个空格为单个的算法