String

  • 构造函数

    • //第一种构造:使用char数组
    • //第一种构造:使用byte数组
    • //第一种构造:使用一个已经存在的字符串

    ```

    char[] sz1 = {'a','b','c'};
    byte[] sz2={97,98,99};
    String s1 = new String(sz1);
    String s2 = new String(sz2);
    String s3 = new String(s2);
    

    ```

  • String s2 = "abc";与String s3 = new String("abc");差异
  • 常用方法
  • charAt:获取制定位置的字符
  • String concat(String str) :连接字符串
  • boolean contains(CharSequence s) :判断是否包含
  • boolean endsWith(String suffix) :判断是否以xx结束
  • boolean equals(Object anObject)
  • boolean equalsIgnoreCase(String anotherString) :忽略大小写判断是否相等
  • byte[] getBytes() //获取byte数组
  • int indexOf(String str) //查找子字符串位置,不存在返回-1
  • boolean isEmpty() //查看是否为空
  • int lastIndexOf(int ch) //从后面查找子字符串位置。不存在返回-1
  • boolean startsWith(String prefix) :判断是否以xx开始
  • String substring(int beginIndex) :截取字符串,从start到最后
  • String substring(int beginIndex, int endIndex) :截取字符串,从start 到end
  • String trim() :去前后空格

不可变的特性

  • String是不可变的

    • String jiafa = "abc"+"cde";//创建了三个字符串
    • String jiafafa = "abc"+"bcd"+"cde";//创建5个字符串
  • 如果涉及到字符串的反复修改时,使用StringBuffer/StringBuilder

  • 二者之间的差别:
    • StringBuffer是线程安全的
    • StringBuilder是线程不安全的

StringBuilder&StringBuffer

  • 简介:可变字符串。针对于Java的String是不可变字符串而产生的
  • 构造方法,内部底层是一个char数组
    • StringBuffer sb1 = new StringBuffer();//没有指定大小。默认16
    • StringBuffer sb2 = new StringBuffer(10);//指定大小
    • StringBuffer sb3 = new StringBuffer("abc")//使用一个字符串初始化
  • 常用方法法
    • capacity:获取容量,就是底层的char数组的容量
    • length():获取字符串有意义容量
    • append():追加
    • insert:在制定为值插入字符串
    • delete:删除制定位置字符,start到end
    • trimToSize:让当前的char[]长度刚好等于字符串的长度
    • reverse:翻转字符串
    • 其他还有很多和String类似的方法

StringUtils

  • Apache是一个开源组织,提供了非常多的开源的框架或工具集
  • commoms.lang3,
    • 下载地址:
    • http://central.maven.org/maven2/org/apache/commons/commons-lang3/3.1/commons-lang3-3.1.jar
    • 源码地址
    • http://mirrors.shu.edu.cn/apache//commons/lang/source/commons-lang3-3.8.1-src.zip
  • 添加依赖
  • 常用方法

    • equals:比较相等
    • isBlank:是否为空,“ ”也是true
    • isEmpty :“ ”是false
    • isNumeric:持否为纯数字
    • isNumericSpace:是否为纯数字加空格
    • isAlpha:是否为纯字母
    • leftPad:左边填充制定
    • rightPad:右边
    • containsAny:是否包含匹配的任意一个字符
    • containsWhitespace:是否包含空白的字符,比如空格,回车,制表符
    • countMatches:判断匹配上了几次