剑指Offer05. 替换空格

剑指Offer05. 替换空格


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

示例 1:

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

限制:

0 <= s 的长度 <= 10000


JAVA代码


工具类方法

在这里列举一下,但是不可以投机取巧哦~~

class Solution {
    public String replaceSpace(String s) {
        return s.replace(" ","%20");
    }
}

剑指Offer05. 替换空格_第1张图片

官方办法

通过将字符串转为字符数组的方法,逐个字符分析该字符串,如果是空格就向数组中插入% 2 0 三个字符,如果不是空格就将该位置字符直接插入数组中。
注意:不能直接arr.toString()转为字符串,会乱码。
new String(源头数组,起始位置,终止位置)

class Solution {
    public String replaceSpace(String s) {
        char[] arr = new char[s.length()*3];
        int index = 0;
        for(int i = 0;i<s.length();i++){
            if(s.charAt(i)==' '){
                arr[index++] = '%';
                arr[index++] = '2';
                arr[index++] = '0';
            }else{
                arr[index++] = s.charAt(i);
            }
        }
        String newStr = new String(arr,0,index);
        return newStr;
    }
}

解决问题的思路非常重要。

你可能感兴趣的:(leetcode,简单题,算法)