剑指Offer 05. 替换空格(java解题)

Posted on 2023-02-09 14:59  CrazyPixel  阅读(58)  评论(0编辑  收藏  举报

1. 题目

请实现一个函数,把字符串 s 中的每个空格替换成%20

示例 1:

输入:s = "We are happy."   
输出:"We%20are%20happy."

限制:
0 <= s 的长度 <= 10000

2. 解题思路(通用

逐个字符遍历String字符串,并设置一个结果字符串变量re。

如果遍历到的字符不是空格,就把字符存入结果变量;
如果遍历到的字符是空格,则将%20存入结果变量;

由于结果字符串re需要增加字符,而String类型有一个特点:

  • String类是不可改变的,所以你一旦创建了String对象,那它的值就无法改变了,因此re不能定义为string类型,

如果需要对字符串做很多修改,那么应该选择使用 StringBuffer 或 StringBuilder 类。

这是java的一个知识点,具体请看String、StringBuffer、StringBuilder 的区别?

3. 数据类型功能函数总结

//String
String.length();//获得字符串长度
String.charAt(index);//获得字符串中下标index的字符
//StringBuffer
StringBuffer 变量名=new StringBuffer();//声明一个StringBuffer类型的变量
StringBuffer.append(ch);//在尾部添加字符
StringBuffer.toString();//将StringBuffer转为String类型

4. java代码

class Solution {
    public String replaceSpace(String s) {
        StringBuilder re=new StringBuilder();
        for(int i=0;i<s.length();i++){
            if(s.charAt(i)==' '){
                re.append('%');
                re.append('2');
                re.append('0');
            }
            else{
                re.append(s.charAt(i));
            }
        }
        return re.toString();
    }
}