替换空格

来源:互联网 发布:网络教研课题结项 编辑:程序博客网 时间:2024/05/23 16:09

请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

分析:
开始写的时候,重新开辟了一个StringBuffer存储空间,结果内存不够。就在原str上计算出替换后的长度记做newlen,然后从尾至头一次扫描一遍,更新原有str就好。

AC代码:

public class Solution {    public String replaceSpace(StringBuffer str) {           int oldlen=str.length()-1;           int newlen=oldlen;        for(int i=0;i<str.length();i++){            if(str.charAt(i)==' '){                newlen+=2;            }        }        str.setLength(newlen+1);           while(oldlen>=0){               if(str.charAt(oldlen)==' '){                   str.setCharAt(newlen--,'0');                   str.setCharAt(newlen--,'2');                   str.setCharAt(newlen--,'%');               }               else{                   str.setCharAt(newlen--,str.charAt(oldlen));               }               oldlen--;           }        return str.toString();    }}

注:
记得给原str重新setLength

原创粉丝点击