【剑指 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();	    // 将此字符序列用其反转形式取代。
	}
}

 

你可能感兴趣的:(剑指Offer)