读String类源码——理解

本文详细介绍了Java中的String类,包括其不可变性、构造方法和常用方法。String类提供了多种构造方式,如从字符串、字符数组、字节数组等创建。此外,文章还列举了length()、isEmpty()、charAt()、getBytes()、equals()、indexOf()等一系列关键方法的用法,帮助读者理解String类的操作和特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、String类被final修饰,表示它不能被修改,已是终态类,不能被继承

2、构造方法:

String();无参

String(String original);参数:一个字符串

String(char value[]);参数:一个字符数组

String(char value[], int offset, int count);参数:一个字符数组,开始截取数据的位置,截取的长度

String(byte bytes[], int offset, int length, String charsetName);参数:一个byte数组,开始截取数据的位置,截取的长度,字符编码

String(byte bytes[], int offset, int length, Charset charset);一个byte数组,开始截取数据的位置,截取的长度,用来解码的编码

String(byte bytes[], String charsetName);参数:一个byte数组,字符编码,该方法常用,比如在servlet的get、post方法中处理乱码的问题

String(byte bytes[], Charset charset);参数:一个byte数组,用来解码的编码

String(byte bytes[], int offset, int length);参数:个byte数组,开始截取数据的位置,截取的长度

String(byte bytes[]);参数:一个byte数组

String(StringBuffer buffer);参数:一个StringBuffer对象

String(StringBuilder builder);参数:一个StringBuilder对象

 

3、常用方法:

 public int length();返回字符串的长度

public boolean isEmpty();判断字符串是不是为空

public char charAt(int index);获取某个位置的字符

public void  getChars(int srcBegin, int srcEnd, char dst[], int dstBegin);复制字符串的一部分到目标数组的位置,参数分别是要复制部分的起始索引,要复制部分结束位置的下一位置的索引,目标数组,目标数组指定位置的开始索引

public byte[] getBytes(String charsetName);  获取某字符串相应编码的字节数组形式

public byte[] getBytes(Charset charset) ;作用同上,参数不同

public byte[] getBytes() ;获取某字符串的字节数组形式

public boolean equals(Object anObject);判断是否与另一对象相同

 public boolean equalsIgnoreCase(String anotherString);两个字符串忽略大小写进行比较

 public int compareTo(String anotherString);返回值是两个字符串的长度相减,两个相同的字符串则会返回0

 public int indexOf(int ch) ;获取某个字符的索引

 public int lastIndexOf(int ch, int fromIndex);某字符最后一次出现的索引

public String substring(int beginIndex, int endIndex) ;获取某字符串的子串,第二个参数如果不写的话默认是该字符串的长度

public String concat(String str) ;字符串拼接

public String replace(char oldChar, char newChar);  字符替换,参数:旧字符、新字符

public boolean matches(String regex);判断是否符合正则表达式

  public String replaceFirst(String regex, String replacement);替换第一次满足正则表达式的部分

public String replaceAll(String regex, String replacement) ;替换全部满足正则表达式的部分

public String toLowerCase();将字符串改为小写

public String toUpperCase();将字符串改为大写

 public String trim();去掉字符串中的空格

public char[] toCharArray();将字符串转为数组

3、StringBuilder不能安全使用多线程。 如果需要同步, 那么建议使用StringBuffer

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值