剑指offer | 代替空格

题目:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
这里有好多的问题,一些东西还是用的不习惯,下面一一说出吧。
①先把字符串传入StringBuffer str,这里传入的字符串叫str(大佬们都这样叫,是一种惯例了吧)。
②如果该字符串为空(null),那就返回一个空。
③如果不为空,那就开始了我们真正的编程。
先定义一个新的字符串StringBuffer newstr,这里StringBuffer也是字符串的一种定义,再引入变量i作为字符串中的第几个字母,做一个for循环,遍历该字符串中的每一个字母,再引入一个if条件,判断每一个字母是否为空格,如果是空格就用%20代替,(这里str.charAt(i)就是该字符串中的第i个字母。newstr.append();是用小括号里的东西拼接到字符串newstr上,值得注意的就是这不是新建一个字符串,而是实现了字符串的拼接,这就是StringBuffer的重要运用,或者用StringBuilder,他俩的区别我也不太清楚,目前是可以替换使用的),如果不是空格,那就直接拼接到newstr上就好了。最后就是返回了拼接好的StringBuffer字符串,return newstr.toString();只是一个常见的返回类型,指的是将StringBuffer或StringBuilder类型转为String类型,然后再返回。

newstr.append('%');
newstr.append('2');
newstr.append('0');

程序中的这几行代码也可以写成
newstr.append(“%20”);
作用一样,就是引入字符用单引号,引入字符串用双引号。
就这样,程序完成了。以下就是借鉴各位大佬的代码实现的。也算是有了很大的收获。

public class Solution {
    public String replaceSpace(StringBuffer str) {
        if (str == null){
            return null;
        }
        StringBuffer newstr = new StringBuffer();
        for(int i = 0;i < str.length();i++){
            if (str.charAt(i)==' '){
                newstr.append('%');
                newstr.append('2');
                newstr.append('0');
            }else{
                newstr.append(str.charAt(i));
            }
        }
        return newstr.toString();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值