1、截取字符串substring(index,length)
前面为下标索引,后面为截取长度
为string对象(Hello).substring(0,3)
2、字符串拼接
使用+号拼接两个字符串,或者当其中一个是字符串,另一个不是,则也会拼接成一个字符串
“Hello”+“Baby”
使用join拼接
String.join(“*”,“Y”,“U”)第一个为定界符
为string对象(Hello).repeat(count)
“Hello”.repeat(3)重复出现多次
3、java中的String不能修改其中的一个字符
比如修改Helc?为Help!
它的过程是
“Helc?”.substring(0,3)+“p!”
这是一个新的字符串,这样的过程创建字符串虽然效率不高,但是能够让字符串能够共享。
一般来说字符串都不会进行修改,一般进行比较,除了将一些如键盘输入的字符串进行组装。
4、比较字符串是否相等
s.equals(t)
这个是要区分大小写的
s.equalsIgnoreCase(t)
这个是不区分大小写的
注意比较字符串的时候一定不要使用==,因为它是比较的位置。注意(+和substring和new等产生的字符串是不共享的,只有字符串字面量是共享的)
5、有时判断字符串的时候需要注意空串和null串的情形
6、一定要注意尽量不要使用char型,因为有的字符占了两个代码单元
String 常用API
char charAt(int index)返回char字符,一般不使用
int codePointAt(int index) 返回给定位置开始的码点。
int offsetByCodePoints(int startIndex ,int cpCount)?
int compareTo(String other)小于返回负数,等于返回0,大于返回正数
IntStream codePoints()将字符串的码点当做一个流返回,通过toArray将他们放在数组当中
String c=new String(int[] codePoints,offset,int count)根据码点创建对应的字符串
Boolean isEmpty()判断是否为空 但是不能对null使用,会造成空指针异常
Boolean isBlank() 判断是否为空和空格组成
s.equals(t)
这个是要区分大小写的
s.equalsIgnoreCase(t)
这个是不区分大小写的
Boolean startsWith(String prefix)判断是否是以某个前缀开始
Boolean endsWith(String suffix) 判断是否以某个后缀结束
int indexOf(str)
int indeOf(str,fromIndex)
int indeOf(codePoint)
int indexOf(CodePoint ,fromIndex)
返回与字符串或者码点匹配的第一个位置,如果不存在则返回-1
int lastIndexOf(str)
int lastIndexOf(str,fromIndex)
int lastIndexOf(codePoint)
intlastIndexOf(CodePoint ,fromIndex)
返回与字符串或者码点匹配的最后一个位置位置,如果不存在则返回-1
int length() 返回字符串代码单元个数
int codePointCount(start,end)返回start和end之间的码点个数
String replace(CharSequence oldString,CharSequence newString)CharSequence可以为String和StringBuilder用新的字符串替换老的字符串返回一个新的字符串。原来的字符串还是原来的字符串。
substring(index,length)
前面为下标索引,后面为截取长度
为string对象(Hello).substring(0,3)
String toLowerCase()
String toUpperCase()
将所有字母进行大小写转换,返回一个新的字符串
String trim()
String strip()
将头部和尾部的小于等于U+0020的码点(trim)或者空格(strip)