替换空格

在Java中String类是被final关键字修饰的类,因此String字符串是不可以被修改的,要修改字符串,可以通过StringBuilder和StringBuffer构造一个新的字符串。

StringBuilder和StringBuffer这两个类也是被也是被final关键字修饰的,并且都是继承了AbstractStringBuilder类,都实现了Serializable, CharSequence接口,其中StringBuffer的方法是被synchronized关键字修饰的,而StringBuilder方法没有synchronized关键字修饰;StringBuffer由JDK1.0就有了,而StringBuilder到JDK1.5才有;因此可以说StringBuilder是为了当不需要考虑多线程安全的情况下可以代替StringBuffer而产生的。

题解:因此把字符串转换为字符数组,当遇到空格字符的时候,就能够用要替换的字符串替换掉空格就可以了,StringBuffer和StringBuilder的append方法经过重写,可以往里面添加各种类型的数据。

完整代码如下:

 1 /**
 2  * @author: wooch
 3  * @create: 2020/02/21
 4  */
 5 
 6 /**
 7  * 面试题05. 替换空格
 8  * 请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
 9  */
10 public class P05_ReplaceSpace {
11     public String replaceSpace(String s) {
12         if (s == null || s == "") {
13             return s;
14         }
15         StringBuilder sb = new StringBuilder();
16         for (char ch : s.toCharArray()) {
17             if (ch == ' ') {
18                 sb.append("20%");
19             } else {
20                 sb.append(ch);
21             }
22         }
23         return sb.toString();
24     }
25 }
原文地址:https://www.cnblogs.com/baishouzu/p/12340824.html