【Java】 剑指offer(4) 替换空格

题目:

       请实现一个函数,把字符串中的每个空格替换成"%20"。例如输入“We are happy.”,则输出“We%20are%20happy.”。

实现:

//方法一: 若可创建新的字符串,若果字符串上第i为为空格,则添加%20,否则添加这个位置上的字符   
//StringBuffe 也有charAt() 和lenth() public class Solution { public String replaceSpace(StringBuffer str) { StringBuffer res =new StringBuffer(); int n=str.length(); for(int i=0;i<n;i++){ if(str.charAt(i)==' ') res.append("%20"); else res.append(str.charAt(i)); } return res.toString(); } }

 

//方法二:若果不能创建新的字符串,只能在原字符串上替换,就先算出字符串的总长度,从后边开始一次向前
public class Solution {
    public String replaceSpace(StringBuffer str) {
        int len1=str.length();
        int count=0;
        for(int i=0;i<len1;i++){  
            if(str.charAt(i)==' ')
                count++;   //算出空格的个数
        }
        int len2=len1+count*2;//算出新字符串的总长度
        int j=len1-1;
        int i=len2-1;
        str.setLength(len2); //设置其总长度
        while(j>=0&&i>=0){    //从新串和旧串的后边开始依次向前
           if(str.charAt(j)==' '){
               str.setCharAt(i--, '0');
               str.setCharAt(i--, '2');
               str.setCharAt(i--, '%');
           }else
              str.setCharAt(i--,str.charAt(j));
          j--;
     }
     return str.toString();
}
}

 

转载于:https://www.cnblogs.com/yaogungeduo/p/11349168.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值