欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

剑指offer_替换空格

程序员文章站 2022-04-30 07:54:46
题目描述:请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = "We are happy."输出:"We%20are%20happy."限制:0 <= s 的长度 <= 10000题解:思路:可以把字符串逐个存入数组中按数组从头检索遇见空格就将其在新数组中替换为%20(需要一个新的数组来存储改变后的字符串),或不用数组直接新建字符串,在字符串上进行操作。代码:Javaclass Solution { ......

题目描述:

请实现一个函数,把字符串 s 中的每个空格替换成"%20"。

示例 1:

输入:s = "We are happy."
输出:"We%20are%20happy."

 

限制:

0 <= s 的长度 <= 10000

 

题解:

思路:

可以把字符串逐个存入数组中按数组从头检索遇见空格就将其在新数组中替换为%20(需要一个新的数组来存储改变后的字符串),或不用数组直接新建字符串,在字符串上进行操作。

代码:Java

class Solution {
    public String replaceSpace(String s) {
        StringBuilder res = new StringBuilder();
        for(Character c:s.toCharArray()){
            if(c==' ') res.append("%20");
            else res.append(c);
        }
        return res.toString();
    }
}

 

其中StringBuilder和StringBuffer在构造方法上无差别,但Buffer多了一个synchronized,保证了线程安全,所以理应Builder性能更好一些,但leetcode上两种其实并无明显区别。

关于String、StringBuilder和StringBuffer的区别可参考:https://blog.csdn.net/csxypr/article/details/92378336

本文地址:https://blog.csdn.net/yy13136769189/article/details/107371795