文章来源: 个人博客 翔仔年轻有力量:替换空格
题目描述
请实现一个函数,将一个字符串中的每个空格替换成“ ”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We Are Happy。
已知一个字符串,字符串中包含一个或多个空格将空格替换为“ ”输出替换后的字符串
思路方法
在书中对于C的解法,需要两个指针,从原字符串的末尾往前扫描,具体如下:
先遍历一次,确认包含的空格数→确认新字符串的长度N=n原长+(空格数*2)从原字符串末尾开始扫描,遇到非空格直接复制到新字符串,遇到空格则向新字符串中输出“ ” 对于Java来说,字符串操作类存在reverse方法可以反转字符串,所以直接在扫描过程,对于每个元素逐个用append方法添加进新字符串即可(注:因本题需要对字符串进行频繁操作,故使用StringBuffer类。对于String、StringBuffer和StringBuilder的区别可以参见链接)
参考代码
public class Solution {
public String
replaceSpace(StringBuffer str
) {
StringBuffer sNew
= new StringBuffer();
for (int i
= str
.length() - 1; i
>= 0; i
--) {
if (str
.charAt(i
) == ' ')
sNew
.append("02%");
else {
sNew
.append(str
.charAt(i
));
}
}
return sNew
.reverse().toString();
}
}