文章目录
- String介绍
- 常用方法
- 比较
- 查找
- 转化
- 拆分
- 字符串截取
- 其他常用
- StringBuilder和StringBuffer
- 主要方法
- String、StringBuffer、StringBuilder的区别
String介绍
String 是我们经常用到的一个类, 那么接下啦会从常用方法, ,常见操作,字符串常量池,以及StringBuffer 和 StringBuilder等方面来介绍
常用方法
比较
equals(Object anObject) 方法:按照字典序比较
int compareTo(String s) 方法: 按照字典序进行比较
与equals不同的是,equals返回的是boolean类型,而compareTo返回的是int类型。具体比较方式:
- 先按照字典次序大小比较,如果出现不等的字符,直接返回这两个字符的大小差值
- 如果前k个字符相等(k为两个字符长度最小值),返回值两个字符串长度差值
查找
char charAt(int index)
返回index位置上字符,如果index为负数或者越界,抛出IndexOutOfBoundsException异常
int indexOf(int ch) 返回ch第一次出现的位置,没有返回-1
转化
数值和字符串转化
String s1 = String.valueOf(1234);
大小写转化
s1.toUpperCase())
字符串转数组
char[] ch = s.toCharArray();
格式化输出
String s = String.format(“%d-%d-%d”, 2019, 9,14);
拆分
String[] split(String regex) 将字符串全部拆分
String[] split(String regex, int limit) 将字符串以指定的格式,拆分为limit组
注意 :
- 字符"|“,”*“,”+"都得加上转义字符,前面加上 “\” .
- 而如果是 “” ,那么就得写成 “\\” .
- 如果一个字符串中有多个分隔符,可以用"|"作为连字符
String str = "hello world hello bit" ;
String[] result = str.split(" ",2) ;
for(String s: result) {System.out.println(s);
}
字符串截取
String substring(int beginIndex) 从指定索引截取到结尾
String substring(int beginIndex, int endIndex) 截取部分内容
注意
- 索引从0开始
- 注意前闭后开区间的写法, substring(0, 5) 表示包含 0 号下标的字符, 不包含 5 号下标,前闭后开
其他常用
String trim() 去掉字符串中的左右空格,保留中间空格
注:所有涉及到可能修改字符串内容的操作都是创建一个新对象,改变的是新对象
StringBuilder和StringBuffer
由于String的不可更改特性,为了方便字符串的修改,Java中又提供StringBuilder和StringBuffer类。这两个类大
部分功能是相同的,这里介绍 StringBuilder常用的一些方法,其它需要用到了大家可参阅 StringBuilder在线文档
https://docs.oracle.com/javase/8/docs/api/
主要方法
StringBuff append(Stringstr)
在尾部追加,相当于String的+=,可以追加:boolean、char、char[]、double、float、int、long、Object、String、StringBuff的变量
char charAt(int index)
获取index位置的字符
int length()
获取字符串的长度
int indexOf(String str)
返回str第一次出现的位置
int indexOf(String str, int fromIndex)
从fromIndex位置开始查找str第一次出现的位置
int lastIndexOf(String str)
返回最后一次出现str的位置
int lastIndexOf(String str,int fromIndex)
从fromIndex位置开始找str最后一次出现的位置
StringBuff insert(intoffset, String str)
在offset位置插入:八种基类类型 & String类型 & Object类型数据
StringBuffer deleteCharAt(int index)
删除index位置字符
StringBuffer delete(int start, int end)
删除[start, end)区间内的字符
StringBuffer replace(int start, int end, String str)
将[start, end)位置的字符替换为str
String substring(int start)
从start开始一直到末尾的字符以String的方式返回
String substring(int start,int end)
将[start, end)范围内的字符以String的方式返回
StringBuffer reverse()
反转字符串
String toString()
将所有字符按照String的方式返回
注
String变为StringBuilder: 利用StringBuilder的构造方法或append()方法
StringBuilder变为String: 调用toString()方法
String、StringBuffer、StringBuilder的区别
String的内容不可修改,StringBuffer与StringBuilder的内容可以修改.
StringBuffer与StringBuilder大部分功能是相似的
StringBuffer采用同步处理,属于线程安全操作;而StringBuilder未采用同步处理,属于线程不安全操作