美文网首页
算法-5.替换空格

算法-5.替换空格

作者: zzq_nene | 来源:发表于2020-08-07 14:32 被阅读0次

    请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
    思路:首先找到字符串中所有的字符数,遍历其中有多少个空格,然后重新构建字符串的字符数量,即一个空格字符要替换成三个字符;然后使用新的字符数量创建一个新的字符数组,通过遍历旧的字符数组,判断如果为空格,则给新的字符数组中设置三个字符,如果不是空格字符,则设置原先字符串的字符。

        public static String replaceSpace(String str) {
            int spaceCount = 0;
            for (int i = 0; i < str.length(); i++) {
                if (str.charAt(i) == ' ') {
                    spaceCount++;
                }
            }
    
            int newLength = str.length() + spaceCount * 2;
            char[] str2 = new char[newLength];
            for (int i = str.length() - 1; i > 0; i--) {
                if (str.charAt(i) == ' ') {
                    str2[newLength - 1] = '0';
                    str2[newLength - 2] = '2';
                    str2[newLength - 3] = '%';
                    newLength = newLength - 3;
                } else {
                    str2[newLength - 1] = str.charAt(i);
                    newLength = newLength - 1;
                }
            }
            return new String(str2);
        }
    
        public static String replaceSpace1(String str) {
            int spaceCount = 0;
            for (int i = 0; i < str.length(); i++) {
                if (str.charAt(i) == ' ') {
                    spaceCount++;
                }
            }
    
            int newLength = str.length() + spaceCount * 2;
            int cur = 0;
            char[] str2 = new char[newLength];
            for (int i = 0; i < str.length(); i++) {
                if (cur < newLength) {
                    if (str.charAt(i) == ' ') {
                        // cur=2时,经过替换,变成三个字符
                        str2[cur] = '%';
                        str2[cur + 1] = '2';
                        str2[cur + 2] = '0';
                        // 所以下一次的cur使用的时候就得是5
                        cur = cur + 3;
                    } else {
                        // cur = 0时,取出原字符串中的第0个字符
                        str2[cur] = str.charAt(i);
                        cur = cur + 1;
                    }
                }
            }
            return new String(str2);
        }
    

    相关文章

      网友评论

          本文标题:算法-5.替换空格

          本文链接:https://www.haomeiwen.com/subject/mkhrrktx.html