2.替换空格

Posted chanaichao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2.替换空格相关的知识,希望对你有一定的参考价值。

题目描述

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

题目解答

public class Solution {
    public String replaceSpace(StringBuffer str) {
        int spacenum=0;
        for(int i=0;i<str.length();i++){
            if(str.charAt(i)==‘ ‘){
                spacenum++;
            }
        }
        
        //从后往前替换,每个字符只要移动一次
        int indexOld=str.length()-1;
        int newLength=str.length()+spacenum*2;
        int indexNew=newLength-1;
        str.setLength(newLength);
        for(;indexOld>=0 && indexOld<indexNew;--indexOld){
            if(str.charAt(indexOld)==‘ ‘){
                str.setCharAt(indexNew--,‘0‘);
                str.setCharAt(indexNew--,‘2‘);
                str.setCharAt(indexNew--,‘%‘);
            }else{
                str.setCharAt(indexNew--,str.charAt(indexOld));
            }
        }
        return str.toString();
    }
}

从前往后数空格

从后往前移动字符并插入

以上是关于2.替换空格的主要内容,如果未能解决你的问题,请参考以下文章

剑指offer 2.替换空格

在第n次出现空格后删除所有文本

《剑指Offer——5:替换空格》代码

正则表达式替换markdown文件代码块标记中的所有空格

shell替换一个或多个空格为逗号

替换或删除后台堆栈上现有片段的代码不起作用