一、思路:
从字符串的后面向前遍历一次替换空格。
二、代码
/** * 04、替换掉字符串中的空格,将空格替换成%20 */ public class Solution1 { //计算空格数 public int getBlankNum(String str) { int blankNum=0; for(int i=0;i<str.length();i++) { if(str.charAt(i)==' ') blankNum++; } return blankNum; } //打印最后的字符串 public void printChar(char[] retlString) { for (char i:retlString) { System.out.print(i); } } //替换空格 public void blankReplace(String str) { int len=str.length(); if(len<0||str==null) return; int blankNum=getBlankNum(str); int newLen=len+2*blankNum; char[] repalceRest=new char[newLen]; int strIndex=len-1; int replaStrIndex=newLen-1; while(strIndex>=0&&replaStrIndex>=0) { if(str.charAt(strIndex)==' ') { repalceRest[replaStrIndex--]='0'; repalceRest[replaStrIndex--]='2'; repalceRest[replaStrIndex--]='%'; } else { repalceRest[replaStrIndex--]=str.charAt(strIndex); } strIndex--; } printChar(repalceRest); } }