請實現一個函數,將一個字符串中的空格替換成“%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; } }