请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
注意从后向前替换,使得时间复杂度为O(n);
public class Main { public static void main(String[] args) { Main main01=new Main(); String str=main01.replaceSpace(new StringBuffer("old string")); System.out.println(str); } public String replaceSpace(StringBuffer str) { if(str==null || str.length()<0){ return null; } //求字符串的实际长度和空格的数目 int oldStrNum=0,blanckNum=0; int i=0; while(i<str.length()){ oldStrNum++; if(str.charAt(i)==‘ ‘){ blanckNum++; } i++; } int newStrNum=oldStrNum+2*blanckNum; int oldStrIndex =oldStrNum-1, newStrIndex=newStrNum-1; char newCharArr[]=new char[newStrNum]; while(oldStrIndex>=0){ if(str.charAt(oldStrIndex)==‘ ‘){ newCharArr[newStrIndex--]=‘0‘; newCharArr[newStrIndex--]=‘2‘; newCharArr[newStrIndex--]=‘%‘; }else{ newCharArr[newStrIndex--]=str.charAt(oldStrIndex); } oldStrIndex--; } String newStr=String.valueOf(newCharArr); return newStr; } }