请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
public class Solution { public String replaceSpace(StringBuffer str) { int p1 = str.length()-1; for(int i = 0;i<=p1;i++){ // 这个地方要注意,跳出循环的条件是i<=p1,不是i<str.length,因为str后边一直在补空格,没法结束 if(str.charAt(i)==‘ ‘){ str.append(" "); } } int p2 = str.length()-1; while(p1>=0&&p2!=p1){ char c = str.charAt(p1--); if(c==‘ ‘){ str.setCharAt(p2--,‘0‘); str.setCharAt(p2--,‘2‘); str.setCharAt(p2--,‘%‘); }else{ str.setCharAt(p2--,c); } } return str.toString(); } }
原文:https://www.cnblogs.com/tendermelon/p/12821479.html