替换空格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     }

 

posted on 2019-11-10 19:16  ERFishing  阅读(222)  评论(0编辑  收藏  举报