Sting类常用方法总结

发布时间 2023-06-20 11:26:35作者: 顶小飞

String 类代表字符串,字符串是常量 ,用双引号引起来表示。 它的值在创建之后不能更改 。

由final修饰,代表不可变的字符序列 ;

实现了序列化、Comparable接口和 CharSequence 接口;

String 对象的字符内容是存储在一个 char 型的数组

 

常用方法:

  • int length() 返回此字符串的长度(字符串为null会报空指针异常)
  • boolean isEmpty() 判断字符串是否为空(源码是返回字符串长度是否为0,因此字符串为null时也会报空指针)
  • char charAt(int index) 返回字符串索引处的值(源码首先会判断传入的index是否小于0且大于等于字符串长度,抛出索引越界) 
  • byte[] getBytes(String charsetName) 将一个String类型的字符串中包含的字符转换成byte类型并且存入一个byte[]数组中(如果字符串为null,报空指针)
  • boolean equals(Object anObject) 比较两个字符串内容是否相等(源码第一步先比较地址值是否相等,相等返回true,第二步判断是否是String类型,不是的话返回false,第三步如果都是string类型的话,再判断长度是否一致,最后再遍历进行字符比较) 当两个字符串进行比较时,用来做比较的字符串为null时回报空指针,例 s.equals(s1),s为null时会报错,s1为null不会报错
  • boolean startsWitch(String prefix) 或 boolean startsWitch(String prefix, int toffset) 判断字符串前缀是否是参数prefix(参数toffset--字符串中开始查找的位置) 例"dingxiaofei".startsWitch("xiao", 4) -- true
  • boolean endWith(String suffix) 判断字符串结尾是否是参数suffix (源码: return startsWith(suffix, value.length - suffix.value.length) )
  • int indexOf(String str) 或 int indexOf(String str, int formIndex) 对象中第一次出现的指定值的索引,开始在 fromIndex进行搜索。 如果未找到该值,则返回-1。
  • int lastIndexOf(String str) 或 int lastIndexOf(String str, int formIndex) 查找指定字符在当前字符串中最后一次出现的位置。
  • String substring(int beginIndex) 或 String substring(int beginIndex, endIndex)  根据指定的起始位置和终止位置,截取字符串。包含起始位置的字符,但不包含终止位置的字符 例"dingxiaofei".substring(3, 7) -- gxia
  • String replace(char ordChar, char newChar) 用新字符替换旧字符
  • String replaceAll(String regex, String replacement) 用新字符串replacement 替换所有的 正则模式匹配的串 另外 String replaceFirst(String regex, String replacement) 用新字符串replacement 替换第一个 正则模式匹配的串 
  • String[] split(String regex) 或 String[] split(String regex, int limit) 给定正则表达式的匹配位置拆分该字符串 (String[] split(String regex) 源码是返回 split(regex, 0) limit这个参数控制样板(pattern)应用的次数,因此它影响结果数组的长度。如果limit的值为n>0,那么样板会被应用n-1次,如此一来结果数组的长度就会不大于n,并且结果数组的最后一个元素会包含从最后一个样板匹配位置的下一个字符到整个输入字符串结束的所有字符。如果n<=0,样板会被尽可能地匹配,所以此时结果数组的长度是未知的;如果此时n=0,那么输入字符串末尾的空格会被丢弃。
  • boolean contains(CharSequence s) 判断字符串是否包含参数字符(源码是判断字符串对象中s的索引大于-1, 即返回 indexOf(s.toString()) > -1)
  • boolean matches(String regex) 判断正则是否匹配字符串
  • String toLowerCase() 将字符串值转为小写形式
  • String toUpperCase() 字符串值转为大写形式
  • String trim() 去掉字符串前后空格
  • static String format(String format, Object... args) 创建格式化的字符串以及连接多个字符串对象
  • static String valueOf(Object obj) 将对象转String