替换空格Java实现[剑指offer]
题目
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
在使用C++编写时需要考虑内存的问题,但是在java中可以调用函数进行;
1使用replace()函数
1.1描述
将StringBuffer类型转换成String类型,调用repplace()函数
1.2code
1 public String replaceSpace(StringBuffer str) { 2 //1.使用自带的函数 3 return str.toString().replace(" ","%20"); 4 }
2使用StringBuilder进行拼接
2.1描述
String对象是不可改变的。每次使用 System.String类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的 String对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用System.Text.StringBuilder类。
2.2code
1 public String replaceSpace(StringBuffer str) { 2 //2.使用StringBuilder进行拼接 3 StringBuilder sb=new StringBuilder(); 4 for(int i=0;i<str.length();i++){ 5 char c=str.charAt(i); 6 if(c==' '){ 7 sb.append("%20"); 8 }else{ 9 sb.append(c); 10 } 11 } 12 return sb.toString(); 13 }