String——替换空格

来源:互联网 发布:矩阵式柔性充电堆技术 编辑:程序博客网 时间:2024/06/04 00:28

方法一:

使用String的replaceAll方法。

public class Solution {
    public String replaceSpace(StringBuffer str) {
    String string=str.toString();
      return  string.replaceAll(" ","%20");
    }
}

方法二:

使用split()方法以空格为分隔符时,split()识别在String开头出现的空格,但不识别在结尾出现的空格(只针对” “)。


方法三:

在当前字符串替换,怎么替换才更有效率(不考虑java里现有的replace方法)。
从前往后替换,后面的字符要不断往后移动,要多次移动,所以效率低下
从后往前,先计算需要多少空间,然后从后往前移动,则每个字符只为移动一次,这样效率更高一点。
 public String replaceSpace(StringBuffer str) {    int count=0;                               int oldlength=str.length();        for(int i=0;i<oldlength;i++)            {            if(str.charAt(i) == ' ')                count++;        }        if(count == 0)            return str.toString();                int newlength=oldlength+count*2;        str.setLength(newlength);//扩大StringBuffer的长度,防止下标越界!        int oldindex=oldlength-1;        int newindex=newlength-1;        while(oldindex>=0&&newindex>oldindex)            {            if(str.charAt(oldindex) == ' ')                {                str.setCharAt(newindex--,'0');//setCharAt(int index,char ch)                str.setCharAt(newindex--,'2');                str.setCharAt(newindex--,'%');            }            else                str.setCharAt(newindex--,str.charAt(oldindex));                        oldindex--;        }        return str.toString();    }



0 0
原创粉丝点击