5. 替换空格[java]

题目描述 在线编程

将一个字符串中的空格替换成 "%20"。

 

Input:
"A B"

Output:
"A%20B"

解题思路

要求在原字符串上改动,要将空格替换成 "%20",即每有1个空格字符串长度增加2;

1.先给原字符串扩展长度,每有1个空格长度增加2个单位

2.用双指针法,指针p2指向扩展后字符串尾,指针p1指向原字符串的尾,从后往前遍历

若p1==空格时,p2依次往前填充"02%";若p1!=空格,p2填充p1指向的字符;双指针继续往前遍历.

public class Solution {
    public String replaceSpace(StringBuffer str) {
        int p1=str.length()-1;
        for(int i=0;i<=p1;i++){
            if(str.charAt(i)==' ')
                str.append("  ");
        }
        int p2=str.length()-1;
        while(p1>=0&&p2>p1){
            char c=str.charAt(p1--);
            if(c==' '){
                str.setCharAt(p2--,'0');
                str.setCharAt(p2--,'2');
                str.setCharAt(p2--,'%');
            }else{
                str.setCharAt(p2--,c);
            }
                
        }
        return str.toString();
    }
}

 

转载于:https://www.cnblogs.com/zslhg903/p/11127493.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值