《剑指Offer》02替换空格
在做这道题之前,先来回顾一下StringBuffer
java.lang.StringBuffer
final的,不能被继承
StringBuffer是字符串缓冲区,是一个容器,curd
特点:
1、长度可以变化
2、可以操作多个数据类型
3、最终会通过toString方法变成字符串。
增:
append():将指定数据最为参数添加到已有数据结尾处。
public class Test { public static void main(String[] args) { StringBuffer sb = new StringBuffer(); StringBuffer sb1 = sb.append(34); System.out.println(sb==sb1);//输出true } }
insert(int offset,数据):将数据插入到指定位置
删:
delete(int start,int end):包含头不包含尾
deleteCharAt(int index)
改:
StringBuffer replace(int start,int end,String str)
void setCharAt(int index,char ch)
查:
length():长度
char charAt(int index)
int indexOf(String str)
int lastIndexOf(String str)
String subString(int start)
String subString(int start,int end)
反转:reverse()
复习了一下StringBuffer的常用函数,那么《剑指Offer》02替换空格就很简单了,
题目:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
public class Solution { public String replaceSpace(StringBuffer str) { for (int i=0; i<str.length(); i++) { if (str.charAt(i)==' ') { str.replace(i,i+1,"%20"); } } return str.toString(); } }