zoukankan      html  css  js  c++  java
  • 替换空格

    在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 }
  • 相关阅读:
    -bash: fork: Cannot allocate memory 问题的处理
    Docker top 命令
    docker常见问题修复方法
    The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)
    What's the difference between encoding and charset?
    hexcode of é î Latin-1 Supplement
    炉石Advanced rulebook
    炉石bug反馈
    Sidecar pattern
    SQL JOIN
  • 原文地址:https://www.cnblogs.com/baishouzu/p/12340824.html
Copyright © 2011-2022 走看看