版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_40739833/article/details/81276460
String类是我们使用频率非常非常高的一个类,JDK也为我们提供了很多它的方法。
1. String与字符
字符串就是一个字符数组,所以在String类里面支持有字符数组转换为字符串以及字符串变为字符的操作方法。
// 构造方法,将字符数组转为字符串
public String(char value[])
/**
* 构造方法,将字符数组中部分内容(下标offset开始,长度为count)转为字符串
* 如果offset+count超过了字符串长度,则会产生StringIndexOutOfBoundsException异常
*/
public String(char value[], int offset, int count)
// 普通方法,返回字符串指定下标的字符,从0开始
public char charAt(int index)
// 将字符串变为字符数组返回
public char[] toCharArray()
2. String与字节
字节常用于数据传输以及编码转换的处理之中,在String中提供有对字节的支持。
/**
* 构造方法,将字节数组转为字符串
* 字节并不适合处理中文,只有字符适合处理中文,字节只适合处理二进制数据。
*/
public String(byte bytes[])
// 构造方法,将字节数组转为字符串,offset为字节数组起始转换的下标,length为转换的长度
public String(byte bytes[], int offset, int length)
// 普通方法,将字符串以字节数组的形式返回
public byte[] getBytes()
// 在返回的过程中,指定编码规则
public byte[] getBytes(Charset charset)
3. 字符串比较
// 区分大小写比较
public boolean equals(Object anObject)
// 不区分大小写的比较
public boolean equalsIgnoreCase(String anotherString)
// 比较两个字符串大小关系,按照字符串的ASCII码进行比较,当前字符串大返回>0,小于返回<0,等于返回=0
public int compareTo(String anotherString)
String类实现了Comparable接口,Comparable接口里只有一个方法,就是compareTo()方法,实现了该接口的类都有compareTo()方法,该方法用来进行对象值大小的比较。
4. 字符串查找
从一个完整的字符串之中可以判断指定内容是否存在,即子串的查找操作。
// 判断一个子串s是否存在,CharSequence是String的一个父接口
public boolean contains(CharSequence s)
// 从头开始查找str第一次出现的位置,返回子串头的下标,找不到返回-1。contains底层其实调用的就是该方法
public int indexOf(String str)
// 指定查找范围
public int indexOf(String str, int fromIndex)
// 从后向前查找,返回匹配成功时子串头的下标
public int lastIndexOf(String str)
// 从指定位置由后向前查找
public int lastIndexOf(String str, int fromIndex)
// 判断是否以prefix子串开头
public boolean startWith(String prefix)
// 从指定位置开始判断是否以toffset子串开头
public boolean startWith(String prefix, int toffset)
// 是否以suffix子串结尾
public boolean endWith(String suffix)
index方法只返回第一次出现的子串的位置,
5. 字符串替换
使用一个指定的新的字符串替换掉已有的字符串数据,可用的方法如下:
// 将字符串中的所有regex替换为replacement
public String replaceAll(String regex, String replacement);
// 只将第一次出现的regex替换为replacement
public Stirng replaceFirst(String regex, String replacement);
从参数名就可以看出,上面两个方法支持正则表达式,对于满足表达式的情况,也进行替换,不仅上面两个方法支持正则表达式,实际上,所有字符串都支持正则表达式。
6. 字符串拆分
将一个完整的字符串按照指定的分隔符划分为若干个子字符串。
// 将字符串以regex字符串拆分,或满足该正则表达式的子串进行拆分
public String[] split(Stirng regex);
// 拆分形成的String[]长度最大为limit
public String[] split(Stirng regex, int limit);
拆分标志regex不会出现在结果集中。
7. 字符串截取
从一个完整的字符串之中截取出部分内容,可用方法如下:
// 截取返回beginIndex到字符串尾的字符串
public Stirng subString(int beginIndex);
// 返回beginIndex到endIndex的字符串,左闭右开
public Stirng subString(int beginIndex, int endIndex);
8. 字符串其他方法
除了上面的方法之外,Stirng还提供了一些其它功能的方法。
// 普通方法,删除字符串两侧所有空格,如果是一个空格字符串,则变成空串(不是null)
public String trim()
// 字符串转为小写
public String toLowerCase()
// 字符串转为大写
public String toUpperCase()
// 字符串入池操作
public native String intern()
// 字符串拼接,相当于"+",但是产生的结果不入池,"+"拼接的新字符串入池
public String concat(String str)
// 获取字符串长度
public int length()
// 字符串是否为空串,长度为0的字符串,不是null
public boolean isEmpty()