剑指offer-面试题5:替换空格

题目描述

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

思路分析

Java实现比较简单,直接通过StringBuilder进行动态添加就可以实现了或者正则表达式匹配,如果是C++的话就需要考虑空间扩展的大小和如何移动;

代码实现

/**
 * Copyright (c) 2020.
 * Email: [email protected]
 *
 * @author lyg  2020/2/28 下午10:15
 * description:
 * 请实现一个函数,将一个字符串中的每个空格替换成“%20”。
 * 例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
 **/

public class Solution2 {
    public String replaceSpace(StringBuffer str) {
        StringBuilder buffer = new StringBuilder();
        for (int i = 0, len = str.length(); i < len; i++) {
            if (Character.isSpaceChar(str.charAt(i))) {
                buffer.append("%20");
            } else {
                buffer.append(str.charAt(i));
            }
        }
        return buffer.toString();
    }

    public String replaceSpaceV2(StringBuffer str) {
        String res = str.toString();
        return res.replaceAll("\\s", "%20");
    }

    public static void main(String[] args) {
        Solution2 solution2 = new Solution2();
        System.out.println(solution2.replaceSpace(new StringBuffer("We Are Happy.")));
        System.out.println(solution2.replaceSpaceV2(new StringBuffer("We Are Happy.")));
    }

}

欢迎关注南阁公众号

剑指offer-面试题5:替换空格_第1张图片

你可能感兴趣的:(剑指offer)