【剑指java版】替换空格

    技术2022-07-11  91

    文章来源: 个人博客 翔仔年轻有力量:替换空格

    题目描述

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

    已知一个字符串,字符串中包含一个或多个空格将空格替换为“ ”输出替换后的字符串

    思路方法

    在书中对于C的解法,需要两个指针,从原字符串的末尾往前扫描,具体如下: 先遍历一次,确认包含的空格数→确认新字符串的长度N=n原长+(空格数*2)从原字符串末尾开始扫描,遇到非空格直接复制到新字符串,遇到空格则向新字符串中输出“ ” 对于Java来说,字符串操作类存在reverse方法可以反转字符串,所以直接在扫描过程,对于每个元素逐个用append方法添加进新字符串即可(注:因本题需要对字符串进行频繁操作,故使用StringBuffer类。对于String、StringBuffer和StringBuilder的区别可以参见链接)

    参考代码

    public class Solution { public String replaceSpace(StringBuffer str) { StringBuffer sNew = new StringBuffer(); for (int i = str.length() - 1; i >= 0; i--) {//从后往前遍历 if (str.charAt(i) == ' ') sNew.append("02%");//遇到空格,添加倒转的" " else { sNew.append(str.charAt(i));//非空格,直接添加 } } return sNew.reverse().toString();//倒转,并输出字符串 } }
    Processed: 0.011, SQL: 9