大号在练葵花宝典 发表于 2024-9-10 13:41:42

字符串类

String类的特性


[*]String类是一个final类,不能被继承
[*]String类底层是一个final修饰的字符数组,表示不可变的字符序列(final char value[ ])
[*]String的不可变性:当String值改变时,会在常量池中创建新的字符串
字符串-创建


[*]字面量方式创建
String s1="abc";// s1存储的是 常量池中"abc"的地址
[*]new String( ):保存是 堆空间中的地址值
字符串-拼接原则

https://secure2.wostatic.cn/static/mfHTCbYa6CcSJxHWWTEiR3/image.png?auth_key=1725944700-wqPzkmA585AWjak6LrQPKE-0-27190ab885c499629038ccadea3cd8a7
String 常用方法

查找


[*]获取长度:
int length( ):返回字符串的长度: return value.length
[*]获取单个字符
char charAt(int index): 返回某索引处的字符return value
[*]获取第一次出现的索引位置
int indexOf(String str):返回指定子字符串在此字符串中第一次出现处的索引
int indexOf(String str, int fromIndex):返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始
[*]获取末了一次出现的索引位置
int lastIndexOf(String str):返回指定子字符串在此字符串中最右边出现处的索引
int lastIndexOf(String str, int fromIndex):返回指定子字符串在此字符串中末了一次出现处的索引,从指定的索引开始反向搜索。
注:indexOf和lastIndexOf方法如果未找到 都是 返回-1
判断


[*]是否是空字符串
boolean isEmpty( ):判断是否是空字符串:return value.length == 0
[*]是否包含子字符串
boolean contains(CharSequence s)
[*]是否以指定的后缀结束
boolean endsWith(String suffix):此字符串是否以指定的后缀结束
[*]是否以指定的前缀开始
startsWith(String prefix):此字符串是否以指定的前缀开始
startsWith(String prefix, int toffset):从指定索引位置,是否以指定前缀开始
比较


[*]比较内容是否相同
boolean equals(Object obj):比较两个字符串的内容是否相同
boolean equalsIgnoreCase(String anotherString):忽略大小写,比较内容是否相同
[*]比较大小
int compareTo(String anotherString):比较两个字符串的大小
转换


[*]大小写转换
String toLowerCase( ):转换为小写
String toUpperCase( ):转换为大写
[*]字符串 转 字符数组char[ ]
调用toCharArray( )方法
[*]字符串 转 字节数组byte[ ]
调用getBytes( )方法
功能


[*]去掉前后空缺
String trim( ):返回字符串的副本,忽略前导空缺和尾部空缺
[*]毗连字符串
String concat(String str):将指定字符串毗连到此字符串的末了。 等价于用“+”
[*]截取
String substring(int beginIndex):返回一个新的字符串,它是此字符串的从beginIndex开始截取到末了的一个子字符串。
String substring(int beginIndex, int endIndex) :返回一个新字符串,它是此字符串beginIndex开始截取到endIndex(不包含)的一个子字符串。左闭右开
[*]切割
String[ ] split(String regex):根据给定正则表达式的匹配拆分此字符串。
String[ ] split(String regex, int limit):根据匹配给定的正则表达式来拆分此字符串,最多不超过limit个,如果超过了,剩下的全部都放到末了一个元素中。
[*]替换
String replace(char oldChar, char newChar):返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
String replace(CharSequence target, CharSequence replacement):使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。
String replaceAll(String regex, String replacement): 使 用 给 定 的replacement 替换此字符串所有匹配给定的正则表达式的子字符串。
String replaceFirst(String regex, String replacement): 使 用 给 定 的replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。
[*]匹配正则表达式
boolean matches(String regex):字符串是否匹配给定的正则表达式
StringBuffer和StringBuilder

StringBuffer扩容原理

<ul>字符数组初始的化长度是16
当长度达到16的时候,新的容量是:原长度×2+2
int newCapacity = (value.length
页: [1]
查看完整版本: 字符串类