JAVA基础 String相关API
String是我们在学习和使用中,比较常用到的类,同时他也有着很多方法,使得我们在用的时候更加的省事方便。和String相关的StringBuilder和StringBuffer类,我们今天也一样看下。同样,关于具体的方法的使用需要看下API,这边稍微写下相关方法有个印象就可以的。
String
String是不可变长的字符序列,我们平常用到的 双引号的内容 都是String的实例。
构造器
byte[] getBytes() 使用平台的默认字符集将此 String编码为字节序列,将结果存储到新的字节数组中。
String(byte[] bytes, String charsetName) 使用指定的字符编码格式转为字符串
String(char[] value) 分配新的 String ,使其表示当前包含在字符数组参数中的字符序列。因为String的代码可以是多个字符拼接而成,因此String的构造器中可以用字符。
char[] arr = {'a','b','c'};
String str = new String(arr);
System.out.println(str);//abc
常用方法
charAt(int index)
**返回指定索引处的 char值。**根据索引可以返回字符串索引处字符。
codePointAt(int index) 返回指定索引处的字符的Unicode代码点,相较于直接返回字符不是很直观,但可以通过类型转换来获得字符。
compareTo equals
按字典顺序比较两个字符串,比较基于字符串中每个字符的Unicode值。如果参数字符串等于此字符串,则值0 ; 如果此字符串按字典顺序小于字符串参数,则小于0 ; 如果此字符串按字典顺序大于字符串参数,则值大于0 。
compareToIgnoreCase 忽略大小写差异,比较两个字符串。
equals 比较两个字符串是否相等
concat
将指定的字符串连接到此字符串的末尾,不修改原来的字符串。和 str1+str2 类似。
contains
是否包含指定字符串。返回Boolean类型。
endsWith startsWith
测试此字符串是否以指定的 后缀|前缀 结尾。后面可以跟索引,是从哪一个索引开始计算。
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
将此字符串中的字符复制到目标字符数组中
srcBegin - 要复制的字符串中第一个字符的索引。
srcEnd - 要复制的字符串中的最后一个字符后面的索引。
dst - 目标阵列。
dstBegin - 目标阵列中的起始偏移量。
public static void main(String[] args) {
String str ="abcdefg";
char[] arr = new char[10];
str.getChars(3,5,arr,2);
System.out.println(Arrays.toString(arr));//[ , , d, e, , , , , , ]
}
indexOf
返回指定子字符串第一次出现的字符串中的索引。
后面可以跟索引,查找从索引后开始第一次出现的索引。
lastIndexOf 返回指定子字符串最后一次出现的字符串中的索引
length() 返回此字符串的长度。
repeat, replace, replaceFirst
repeat(int count) 返回一个字符串,其值为此字符串的串联重复 count次。
replace(char oldChar, char newChar) oldChar在此字符串 newChar
replaceFirst 只替换第一个符合的子串
System.out.println(str2.replaceFirst("o","O"));
valueOf ,strip(),stripLeading(),stripTrailing()
valueOf 内容转为字符串。静态方法
strip 返回一个字符串,其值为此字符串,并删除了所有前导和尾随 white space 。
String stripLeading() 返回一个字符串,其值为此字符串,并删除了所有前导 white space 。
String stripTrailing() 返回一个字符串,其值为此字符串,并删除所有尾随 white space 。
toLowerCase() toUpperCase()
使用默认语言环境的规则将此 String所有字符转换为小写|大写。
toCharArray()
将此字符串转换为新的字符数组
split
根据指定分隔符分隔该字符串,返回分隔后的字符串数组
String s = "name=zhangsan&pwd=123";
System.out.println(Arrays.toString(s.split("&")));
substring (int beginIndex, int endIndex)
截取从索引开始到索引结束的字符串
StringBuilder StringBuffer
StringBuilder :可变长字符序列,线程不安全的
StringBuffer :可变长字符序列,线程安全的
执行效率问题: StringBuilder>StringBuffer>String
StringBuilder 和StringBuffer的方法是差不多的,初始容量为16个字符。下面简单看下这些方法
常用方法
转化为字符串
转为字符串 1) toString 2)new String(StringBuffer|StringBuilder)
append
将参数的字符串表示形式追加到序列中。
charAt ,compareTo,getChars,indexOf,length
和String的用法差别不大,可以参考String的用法,或者是详细看下API
subString,replace
和String的用法差别不大,可以参考String的用法,或者是详细看下API
delete, deleteCharAt
delete(int start, int end) 删除此序列的子字符串中的字符。
deleteCharAt(int index) 按此顺序删除指定位置的 char 。
insert
将 参数的字符串表示形式插入此序列中。
offsetByCodePoints(int index, int codePointOffset)
offsetByCodePoints返回此序列中的索引,该索引从给定的index
偏移codePointOffset
代码点。
index - 要偏移的索引
codePointOffset - 代码点中的偏移量
reverse
逆序翻转,会改变原数组。
其他
用“ ” +其他的数据,可以将其变为String类型的数据。
String可以通过构造器转为StringBuilder。也可以通过先创建StringBuilder的对象,然后用append方法转换。StringBuffer也是同理
StringBuilder转为String可以通过构造器,也可以通过toString方法转换。