参考How2j

替换空格

public class Solution {
    public String replaceSpace(StringBuffer str) {
        int len = str.length();
        String str_1 = str.toString();
        for(int i=0;i<len;i++)
        {
            if(str.charAt(i) == ' ')
            {
                str.delete(i,i+1);
                str.insert(i,"%20");
                len += 2;
            }
        }
        return str.toString();
    }
}

StringBuffer,StringBuilder,String

字符

  1. 保存一个字符
char c1 = 'a';
  1. char对应的封装类Character
package character;

public class TestChar {

    public static void main(String[] args) {
        char c1 = 'a';
        Character c = c1; //自动装箱
        c1 = c;//自动拆箱

    }
}

字符串String(类)

  1. 创建字符串
    常见创建字符串手段:
    1. 每当有一个字面值出现的时候,虚拟机就会创建一个字符串
    2. 调用String的构造方法创建一个字符串对象
    3. 通过+加号进行字符串拼接也会创建新的字符串对象
package character;

public class TestString {

    public static void main(String[] args) {
        String garen ="盖伦"; //字面值,虚拟机碰到字面值就会创建一个字符串对象

        String teemo = new String("提莫"); //创建了两个字符串对象

        char[] cs = new char[]{'崔','斯','特'};

        String hero = new String(cs);//  通过字符数组创建一个字符串对象

        String hero3 = garen + teemo;//  通过+加号进行字符串拼接
    }
}
  1. String被final修饰,不可以被继承
  2. immutable (常量)
    不可改变的具体含义是指:
    不能增加长度
    不能减少长度
    不能插入字符
    不能删除字符
    不能修改字符
    一旦创建好这个字符串,里面的内容 永远 不能改变
  3. 字符串中的操作
关键字 功能
charAt 获取字符
toCharArray 获取对应的字符数组
subString 截取子字符串
split 分隔
trim 去掉首尾空格
toLowerCase 小写
toUpperCase 大写
indexOf 判断字符或者子字符串第一次出现的位置
lastIndexOf 字符串最后出现的位置
contains 是否包含子字符串
replaceAll 替换所有的
replaceFirst 只替换第一个
  1. 比较字符串
    1. 是否是同一个对象:用==判断;
    2. 特例:
    3. 内容相同与否用equals
    4. startsWith //以...开始;endsWith //以...结束

字符数组、String、StringBuffer的相互转化,StringBuffer的一些方法

String,StringBuffer与StringBuilder的区别

解题中的问题

需要注意在替换的字符串的长度比原来的要长,所以会导致整个字符长度的变化.