04_替换空格

作者: 是新来的啊强呀 | 来源:发表于2020-05-18 10:48 被阅读0次

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

思路:
1、先遍历一次字符串统计出字符串中空格的总数,并由此计算出替换之后的字符串的总长度。
2、之后从字符串的后面开始复制和替换,准备两个指针,分别指向原始字符串的末尾p1和替换之后字符串的末尾p2,向前移动p1,同时逐个把它指向的字符复制到p2位置,直到碰到空格位置,此时p1向前移动一格,在p2位置插入字符串‘%20’,之后p1继续移动,过程相似。
3、最终p1和p2指向同一位置。

public String ReplaceBlank(StringBuffer string){
        // 遍历一次字符串获取字符串的长度和空格数量
        int originalLength = string.length();  // 字符串长度
        int numberOfBlank = 0;  // 空格数量
        for(int i=0;i< string.length();i++){
            if(string.charAt(i) ==' '){
                numberOfBlank++;
            }
        }
        // 替换空格
        int newLength = originalLength+2*numberOfBlank;  // 空格替换后的长度
        string.setLength(newLength);  // 注意重新设置string的空间大
        int indexOfOriginal = originalLength-1;
        int indexOfNew = newLength-1;
        while(indexOfOriginal>=0 && indexOfNew>indexOfOriginal){  // 两个指针到达同一位置的时候跳出循环
            if(string.charAt(indexOfOriginal) == ' '){  // 指到空格的时候进行替换空格
                string.setCharAt(indexOfNew--,'0');  // 注意i--,是先赋值,再减一
                string.setCharAt(indexOfNew--,'2');
                string.setCharAt(indexOfNew--,'%');
            }else{
                System.out.println(string.charAt(indexOfOriginal));
                string.setCharAt(indexOfNew--,string.charAt(indexOfOriginal));
            }
            indexOfOriginal--;
        }
        return string.toString();
    }

时间复杂度:O(n)

相关文章

  • 04_替换空格

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

  • 替换空格

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

  • 空格替换

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

  • 替换空格

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

  • 空格替换

    空格替换设计一种方法,将一个字符串中的所有空格替换成 %20 。你可以假设该字符串有足够的空间来加入新的字符,且你...

  • 替换空格

    《剑指offer》面试题5:替换空格 题目:请实现一个函数,把字符串中的每个空格替换成“%20”。例如,输入“we...

  • 替换空格

    ?环境:牛客的编译环境?语言:JavaScript☕️难点:string的replace方法在不使用正则匹配的情况...

  • 替换空格

    https://www.nowcoder.com/practice/4060ac7e3e404ad1a894ef3...

  • 替换空格

    题目描述:请实现一个函数,把字符串中的每个空格替换成"%20"。 样例输入:"We are happy."样例输出...

  • 空格替换

    一、题目 请编写一个方法,输入一个字符串,经过一定的处理将字符串中的“空格”替换为“%20”并返回; 二、示例 输...

网友评论

    本文标题:04_替换空格

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