字符串string
java字符串方法
String s = "abcdefghigk"
***********************************
**- 获取字符串长度 (返回值整型)**
s.length();
**********************************
- 获取指定的字符 (返回值整型)
s.charAt(index); // 返回指定索引处的字符。
index 索引
**********************************
- 获取指定字符串索引位置
s.indexOf(substr); // 返回substr第一次在s中出现的索引位置。
substr 要搜索的字符串 也可以是字符
s.indexOf(substr,index)
index 开始搜索的索引位置
找不到返回-1
s.lastIndexOf(substr); // 返回substr在s中最右边出现的索引位置。
主要是倒着查找。
s.lastIndexOf(substr,index); // 指定索引开始反向查找
**********************************
- 判断字符串首尾内容 (返回布尔值)~~
s.startWith(prefix); // 判断是否以指定内容开始。
prefix 前缀字符串
s.startWith(prefix,index); // 判断是否从索引位置开始的字符串以指定内容开始。
s.endWith(suffix); // 判断是否以指定内容结束。
**********************************
- 获取字符数组 (返回字符数组)
s.toCharArray(); // 将字符串转成一个字符数组。
**********************************
- 判断子字符串是否存在 (返回布尔值)
s.contains(str); // 判断s中是否含有 str.
**********************************
- 字符串操作
**********************************
- 截取字符串 (返回值 字符串)
s.subString(index); // 截取从index索引位置开始到结尾。
// 返回一个新的字符串,是 s 的子字符串
s.subString(startindex,endindex); // 开始索引到 结束索引 -1
**********************************
- 字符串替换 (返回值 新的字符串)
s.replace(oldstr,newstr); // 将 s 中的字符串序列全部替换成新字符串序列。
如果没找到旧字符串序列,返回原字符串。
s.replaceAll(regex,replacement); //将指定的字符串全部替换成新的
regex :被替换的字符串或正则表达式
replacement:替换后的字符串
s.replaceFirst(regex,replacement); // 只替换第一个(与上类似)
***************************
- 字符串分隔 (返回值 字符串列表)
s.split(regex) // 根据分隔符分隔(可以使用正则)
s.split(regex,limit) // 限制分隔次数
**************************
- 大小写转换 (如果没有要转换的字符,将原字符串返回, 否则返回新字符串)
s.toLowerCase() // 转成小写
s.toUpperCase() // 转成大写
*************************
- 去除空白内容
s.trim() // 去除字符串两边的空白
去除字符串中的所有空格
String str = s.replaceAll("\\s","");
*************************
- 比较字符串是否相等
- // 当且仅当该参数不为null时,且与此对象表示相同字符序列。 才返回true
s.equals(str);
s.equalslgnoreCase(str); // 忽略大小写。
/*
字符串比较不能简单的使用 比较运算符 == ; 因为比较运算符比较的是两个字符串的
内存地址是否相同 ;所有使用 == 会返回false
*/
****************************
- 格式化字符串
-
String str = null 与 String str = “” 区别
str = null 是空对象,没有指向任何引用地址。 使用API时,会抛出 NullPointerException异常。
str = "" 是一个字符串,分配了内存空间。
字符串拼接三种
String s1 = "abc";
String s2 = "def";
1. +
String s = s1+s2;
2. concat()
String s = s1.concat(s2);
3. StringBuilder().append()
StringBuilder sb = new StringBuilder();
sb.appedn(s1);
sb.appedn(s2);
可变字符串
StringBuffer
1. 创建类
StringBuffer sbf = new StringBuffer(); // 无初始值
StringBuffer sbf = new StringBuffer("abc"); // 初始值 abc
StringBuffer sbf = new StringBuffer(32); // 初始容量 32
2. append()方法
// 尾部追加
sbf.append("abc"); // 追加字符串序列 abc
3. setCharAt()方法
sbf.setCharAt(index,ch); // 把给定索引处的字符修改为 ch
4. insert()方法
sbf.insert(index,str); // 索引处插入 str
5. reverse()方法
sbf.reverse(); // 字符串翻转,反序输出。
6. delete()方法
sbf.delete(start,end); // 删除索引从 start 到 end-1 的字符串
StringBuilder
String StringBuffer StringBuilder 区别
类名 | String | StringBuilder | StringBuffer |
---|---|---|---|
对象类型 | 字符串常量 | 字符串变量 | 字符串变量 |
线程安全 | 不安全 | 不安全 | 安全 |
执行效率 | 低 | 高 | 中 |
总结
操作少,数据少 String
单线程,操作多,数据多 StringBuilder
多线程,操作多,数据多 StringBuffer