Java版牛客网剑指offer编程题第2题--替换空格

        跟learnjiawa一起每天一道算法编程题,既可以增强对常用API的熟悉能力,也能增强自己的编程能力和解决问题的能力,算法和数据结构,是基础中的基础,更是笔试的重中之重。

  • 不积硅步,无以至千里;
  • 不积小流,无以成江海。

题目描述

Java版牛客网剑指offer编程题第2题–替换空格:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

解题方法1

    /**
     * 调用自带函数解决问题
     * */
    public static String replaceSpace1(StringBuffer str) {
        return str.toString().replace(" ", "%20");
    }

解题方法2

    /**
     * 新建一个StringBuilder对象,遍历str每个字符,遇到空格就替换
     * */
    public static String replaceSpace2(StringBuffer str) {
        StringBuilder sb = new StringBuilder();
        for(int i=0;i<str.length();i++){
            char c = str.charAt(i);
            if(c == ' '){
                sb.append("%20");
            }else{
                sb.append(c);
            }
        }
        return sb.toString();
    }

代码测试

package com.learnjiawa.jzoffer;


/**
 * @author zouhuayu
 * 2019-12-01-10:02
 */
public class Solution2 {
    public static void main(String[] args) {
        StringBuffer str = new StringBuffer("We Are Happy");
        String strResult = replaceSpace2(str);
        System.out.println(strResult);
    }

    /**
     * 调用自带函数解决问题
     * */
    public static String replaceSpace1(StringBuffer str) {
        return str.toString().replace(" ", "%20");
    }

    /**
     * 新建一个StringBuilder对象,遍历str每个字符,遇到空格就替换
     * */
    public static String replaceSpace2(StringBuffer str) {
        StringBuilder sb = new StringBuilder();
        for(int i=0;i<str.length();i++){
            char c = str.charAt(i);
            if(c == ' '){
                sb.append("%20");
            }else{
                sb.append(c);
            }
        }
        return sb.toString();
    }
}

总结

题目主要考察字符串的相关知识点,熟悉相关API就可以迅速解题。

参考文献

[1]程杰. 大话数据结构. 北京:清华大学出版社, 2011.

更多

对我的文章感兴趣,持续更新中…
关注微信公众号:
LearnJava

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值