String:字符串常量,底层是char数组。
用于存放字符的数组被声明为final的,因此只能赋值一次,不可再更改。
str1.length() 长度
str1.concat(str2) 连接两个字符串
str1.charAt(int i ) 在i个位置上的字符
str1.substring(int a, int b) 子字符串[a,b)
str1.split(String regex) 正则表达式分割字符串,返回字符数组 * ^ : | . \6个字符需要转译 \\ , 存在limit操作符,若为负数则保留空格
str1.trim() 忽略前空白和后空白
StringBuffer和StringBuilder
对字符串修改时不会产生新的字符串
StringBuffer:字符串变量(Synchronized,即线程安全)速度慢。
速度 | 线程安全 | |
StringBuffer | 慢 | 安全 |
StringBuilder | 快 | 不安全 |
sb.append(String ) 追加字符序列
sb.reverse() 反转字符
sb.delete(a,b) 删除[a,b)
sb.replace(a,b,str) 将[a,b)替换为 str
sb.insert(i,str) 在i位置插入str
基本原则:
- 如果要操作少量的数据用 String ;
- 单线程操作大量数据用StringBuilder ;
- 多线程操作大量数据,用StringBuffer。