剑指offer(2)之替换空格

题目:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

方法一:遍历字符串,找到空格就替换

    代码如下:

 1 public class Solution {
 2     public String replaceSpace(StringBuffer str) {
 3         for (int i = 0; i < str.length(); i++)
 4         {
 5             if(str.charAt(i)==' ')
 6                 str.replace(i, i+1, "%20");
 7                  
 8         }
 9         return str.toString();
10     }
11 }

方法二:直接使用String的replaceAll方法

    代码如下:

1 public class Solution {
2     public String replaceSpace(StringBuffer str) {
3         return str.toString().replaceAll(" ", "%20");
4     }
5 }

方法三:用新的StringBuilder来存

    代码如下:

 1 public class Solution {
 2     public String replaceSpace(StringBuffer str) {
 3         StringBuilder sb = new StringBuilder();
 4         for (int i = 0; i < str.length(); i++)
 5         {
 6             if(str.charAt(i)==' ')
 7             {
 8                 sb.append("%20");
 9             }
10             else
11             {
12                 sb.append(str.charAt(i));
13             }
14         }
15         return sb.toString();
16     }
17 }
原文地址:https://www.cnblogs.com/quxiangjia/p/12513533.html