二替换空格
参考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
字符
- 保存一个字符
char c1 = 'a';
- char对应的封装类Character
package character; public class TestChar { public static void main(String[] args) { char c1 = 'a'; Character c = c1; //自动装箱 c1 = c;//自动拆箱 } }
字符串String(类)
- 创建字符串
常见创建字符串手段:- 每当有一个字面值出现的时候,虚拟机就会创建一个字符串
- 调用String的构造方法创建一个字符串对象
- 通过+加号进行字符串拼接也会创建新的字符串对象
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;// 通过+加号进行字符串拼接 } }
- String被final修饰,不可以被继承
- immutable (常量)
不可改变的具体含义是指:
不能增加长度
不能减少长度
不能插入字符
不能删除字符
不能修改字符
一旦创建好这个字符串,里面的内容 永远 不能改变 - 字符串中的操作
关键字 | 功能 |
---|---|
charAt | 获取字符 |
toCharArray | 获取对应的字符数组 |
subString | 截取子字符串 |
split | 分隔 |
trim | 去掉首尾空格 |
toLowerCase | 小写 |
toUpperCase | 大写 |
indexOf | 判断字符或者子字符串第一次出现的位置 |
lastIndexOf | 字符串最后出现的位置 |
contains | 是否包含子字符串 |
replaceAll | 替换所有的 |
replaceFirst | 只替换第一个 |
- 比较字符串
- 是否是同一个对象:用==判断;
- 特例:
- 内容相同与否用equals
- startsWith //以...开始;endsWith //以...结束
字符数组、String、StringBuffer的相互转化,StringBuffer的一些方法
String,StringBuffer与StringBuilder的区别
解题中的问题
需要注意在替换的字符串的长度比原来的要长,所以会导致整个字符长度的变化.