替换空格

166 阅读1分钟

题目描述

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

package com.happy.algorithm.offer;

/**
 * 替换空格
 */
public class ReplaceSpace {

    public static void main(String[] args) {

    }

    public String replaceSpace(StringBuffer str) {
        char[] chars = str.toString().toCharArray();
        int charsLength = chars.length;
        int spaceCount = 0;
        for (int i = 0; i < charsLength; i++) {
            if (chars[i] == ' ') {
                spaceCount++;
            }
        }

        char[] finChars = new char[charsLength + 2 * spaceCount];
        int pos = finChars.length - 1;
        for (int i = charsLength - 1; i >= 0; i--) {
            if (chars[i] != ' ') {
                finChars[pos--] = chars[i];
            } else {
                finChars[pos--] = '0';
                finChars[pos--] = '2';
                finChars[pos--] = '%';
            }
        }
        return new String(finChars);
    }
}