题目:
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy,则经过替换之后的字符串为We%20Are%20Happy。
思路:
- 遍历的方向两边皆可。
- 若从后往前遍历,新的字符串需要反转。
- 用 String 类的方法判断字符串各位置对应的字符是否为空格。
知识点:
- charAt() 方法: 返回此序列中指定索引处的 char 值。即返回对应的【字符】。
- String.valueOf() 方法:返回参数对应的字符串表示形式。即将此处的【字符】转为【字符串】。
- 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(); // 将此字符序列用其反转形式取代。
}
}