【剑指 Offer 学习】【面试题 4 : 替换空格】【思路】

题目:

请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy,则经过替换之后的字符串为We%20Are%20Happy。

 

思路:

  1. 遍历的方向两边皆可。
  2. 若从后往前遍历,新的字符串需要反转。
  3. 用 String 类的方法判断字符串各位置对应的字符是否为空格。

 

知识点:

  1. charAt() 方法: 返回此序列中指定索引处的 char 值。即返回对应的【字符】。
  2. String.valueOf() 方法:返回参数对应的字符串表示形式。即将此处的【字符】转为【字符串】。
  3. append() 方法:将对应参数的字符串表示形式追加到此序列。即添加至新的字符串中。

 

代码:

public class Demo {
	public static void main(String[] args) {
		StringBuffer string = new StringBuffer("we are happy");
		Demo demo = new Demo();
		System.out.println(demo.replaceSpace(string));
	}
	
	public String replaceSpace(StringBuffer str) {
		// 判断输入是否合法
	    if (str == null)
	        return null;
	    
	    // 创建可变字符序列接收新的字符串
	    StringBuffer sb = new StringBuffer();

	    for (int i = str.length() - 1; i >= 0; i--) {
	        if (String.valueOf(str.charAt(i)).equals(" ")) {	// 返回此序列中指定索引处的 char 值。
	            sb.append("02%");
	        }else {
	            sb.append(str.charAt(i));
	        }
	    }
	    return sb.reverse().toString();	    // 将此字符序列用其反转形式取代。
	}
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值