剑指 Offer 05. 替换空格
题目来源:剑指 Offer 05
题目链接:https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof/
题目描述
请实现一个函数,把字符串 s 中的每个空格替换成”%20“。
示例 1:
1 2
   | 输入:s = "We are happy." 输出:"We%20are%20happy."
   | 
 
限制:
0 <= s 的长度 <= 10000
问题分析
示例代码
正则表达式
1 2 3
   | public String replaceSpace(String s) {       return s.replaceAll("\\s","%20"); }
  | 
 
执行结果:

JAVAAPI
1 2 3 4 5 6 7 8 9 10 11 12
   | public String replaceSpace(String s) {        StringBuilder builder = new StringBuilder();        for(int i =0;i<s.length();i++){            char ch = s.charAt(i);            if(String.valueOf(ch).equals(" ")){                builder.append("%20");            }else{                builder.append(ch);            }        }        return builder.toString();    }
  | 
 
执行结果:

双指针
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
   | public String replaceSpace(String s){     if(s == null || s.length() == 0) return s;     char [] arr = s.toCharArray();     int numOfBlank = 0;     for(char c : arr)         if(c == ' ') numOfBlank++;          char[] arrNew = new char[arr.length+numOfBlank*2];     for(int i =0 ;i<arr.length;i++)         arrNew[i] = arr[i];     int p1 = arr.length-1;     int p2 = arrNew.length-1;     for(;p1!=p2;){         if(arrNew[p1] != ' '){             arrNew[p2--] = arrNew[p1--];         }else{             p1--;             arrNew[p2--] = '0';             arrNew[p2--] = '2';             arrNew[p2--] = '%';         }     }     return String.valueOf(arrNew); }
  | 
 
执行结果:
