题目来源:牛客网-剑指Offer专题
题目地址:替换空格
题目描述
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
题目解析
方法一:
再创建一个StringBuffer
a
n
s
ans
ans 保存答案,接着遍历str,若访问的字符非空格,则直接插入到
a
n
s
ans
ans 后面;若为空格,则插入字符串 “%20”。
public class Solution {
public String replaceSpace(StringBuffer str) {
if (str == null) {
return null;
}
StringBuffer ans = new StringBuffer();
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == ' ') {
ans.append("%20");
} else {
ans.append(str.charAt(i));
}
}
return ans.toString();
}
}
方法二:
出于对空间复杂度的优化就有这各种办法,直接遍历str,如果遇到空格就用StringBuffer自带replace()方法将空格替换为字符串 “%20”
public class Solution {
public String replaceSpace(StringBuffer str) {
if (str == null) {
return null;
}
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == ' ') {
str.replace(i, i + 1, "%20");
}
}
return str.toString();
}
}
方法三:
利用String类提供的replace方法进行替换。
public class Solution {
public String replaceSpace(StringBuffer str) {
return str.toString().replace(" ", "%20");
}
}
如果本对你有所帮助,要记得点赞哦~