String:字符串常量,底层是char数组。

    用于存放字符的数组被声明为final的,因此只能赋值一次,不可再更改。

    str1.length()        长度

    str1.concat(str2)      连接两个字符串

    str1.charAt(int i )      在i个位置上的字符

    str1.substring(int a, int b)  子字符串[a,b)

    str1.split(String regex)     正则表达式分割字符串,返回字符数组   * ^ : | . \6个字符需要转译 \\ , 存在limit操作符,若为负数则保留空格

    str1.trim()          忽略前空白和后空白

 

StringBuffer和StringBuilder

对字符串修改时不会产生新的字符串

StringBuffer:字符串变量(Synchronized,即线程安全)速度慢。

  速度 线程安全
StringBuffer 安全
StringBuilder 不安全

    sb.append(String )  追加字符序列

    sb.reverse()       反转字符

    sb.delete(a,b)      删除[a,b)

    sb.replace(a,b,str)    将[a,b)替换为 str

    sb.insert(i,str)                  在i位置插入str

基本原则:

  • 如果要操作少量的数据用 String ;
  • 单线程操作大量数据用StringBuilder ;
  • 多线程操作大量数据,用StringBuffer。