面试题4:替换空格

题目描述

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

代码实现

public class Solution {
    public String replaceSpace(StringBuffer str) {
        //先计算空格的数量
        int blankNum = 0;
        int len1 = str.length();
        for(int i = 0;i < len1;i++){
            if(str.charAt(i) == ' ')
                blankNum++;
        }
        //扩充str的长度
        int len2 = len1 + blankNum * 2;
        str.setLength(len2);
        //从后往前替换
        for(int i = len1-1,j = len2-1;i >= 0;i--){
            if(str.charAt(i) == ' '){
                str.setCharAt(j--,'0');
                str.setCharAt(j--,'2');
                str.setCharAt(j--,'%');
                if(--blankNum == 0) break;
            }else{
                str.setCharAt(j--,str.charAt(i));
            }
        }
        return str.toString();
    }
}

主要思路

1、从后向前移动,每个元素最多移动一次
2、主要记住几个api:length(),setLength(),charAt(i),setCharAt(i,'0')
3、代码优化:if(--blankNum == 0) break;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 题目要求 请实现一个函数,将字符串中的每个空格替换成“%20”,例如输入“we are family”替换成“we...
    小庄bb阅读 225评论 0 0
  • 题目:请实现一个函数,把字符串中的每个空格替换成"20%"。例如输入"We are happy",则输出"We%2...
    qmss阅读 269评论 0 0
  • 题目:请实现一个函数,把字符串中的每个空格替换成“%20”。例如输入“We are happy”,则输出“We%2...
    Felicia1993阅读 107评论 0 0
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,765评论 18 399
  • Spring Data JPA虽然大大的简化了持久层的开发,但是在实际开发中,很多地方都需要高级动态查询 Crit...
    龙历旗阅读 33,010评论 2 8