1.
代码
class Solution {
public String replaceSpace(String s) {
StringBuffer res=new StringBuffer();
for(Character c:s.toCharArray()){
if(c==' ') res.append("%20");
else res.append(c);
}
return res.toString();
}
}
复杂度
时间O(n) 空间O(n)
java学习
1.StringBuffer
和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。
StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。
2.’'和""的区别
java中的单引号表示字符,java中的双引号是字符串。
单引号引的数据一般是char类型的;双引号引的数据 是String类型的。
3.Character
是char的包装类
2.
class Solution {
public String replaceSpace(String s) {
StringBuilder res=new StringBuilder();
for(int i=0;i<s.length();i++){
char k=s.charAt(i);
if(k==' ')
res.append("%20");
else
res.append(k);
}
return res.toString();
}
}
3.
由于c++的string是可变的,所以还有一个原地修改的方法,然而java不可变,这里就不写了。