解法1:
使用字符串类的replaceAll()函数
class Solution {
public String replaceSpace(String s) {
return s.replaceAll(" ","%20");
}
}
解法2:
一个空格变成%20
, 相当于替换一个空格长度增加2,先计算出字符串中有多少个空格,然后创建一个大小为s.length()+2*空格数量
的char数组,然后再遍历一次字符串,遇到空格就添加3个字符%20
, 非空格就直接添加
class Solution {
public String replaceSpace(String s) {
int blankNum=0;
for(int i=0;i<s.length();i++){
if(s.charAt(i)==' '){
blankNum++;
}
}
char[] ch=new char[s.length()+2*blankNum];
for(int i=0,j=0;i<s.length();i++){
char c=s.charAt(i);
if(c!=' '){
ch[j++]=c;
}else{
ch[j++]='%';
ch[j++]='2';
ch[j++]='0';
}
}
return new String(ch);
}
}
//O(n)
//O(n)
解法3:
使用StringBuilder类,遇到空格append(“%20”), 遇到非空格直接appned该字符
class Solution {
public String replaceSpace(String s) {
StringBuilder sb=new StringBuilder();
for(int i=0;i<s.length();i++){
char c=s.charAt(i);
if(c==' '){
sb.append("%20");
}else{
sb.append(c);
}
}
return sb.toString();
}
}
//O(n)
//O(n)