String 类

字符串广泛应用在Java编程中,在Java中字符串属于对象,Java提供了String类来创建和操作字符串

注意:String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了

StringBuffer 和 StringBuilder 类

当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类
和String类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象
StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据)
由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类

获取方法:

  • int length() :获取字符串长度
  • char charAt(int index) :获取指定位置的字符
  • int indexOf(String ch) :返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1
  • int lastIndexOf(int ch):返回指定字符在此字符串中最后一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1

判断方法:

  • boolean endsWith(String str) :是否以指定字符串结束
  • boolean isEmpty() :判断字符串是否为空
  • boolean contains(CharSequence chars) :判断字符串中是否包含指定的字符或字符串
  • boolean equals(Object anObject):是否相等
  • boolean equalsIgnoreCase(String anotherString) :忽略大小写后是否相等

转换方法:

  • char[] toCharArray() :将字符串转换为字符数组
  • byte[] getBytes() :使用平台的默认字符集将字符串编码为 byte 序列,并将结果存储到一个新的 byte 数组中

其他方法:

  • String replace(char oldChar , char newChar) :用 newChar 字符替换字符串中出现的所有 oldChar 字符,并返回替换后的新字符串
  • String[] split(String regex , int limit): 根据匹配给定的正则表达式来拆分字符串
  • String substring(int beginIndex , int endIndex) :从指定开始和结束的索引值截取字符串
  • String toLowerCase() :全转小写
  • String toUpperCase() :全转大写
  • String trim() :去前后空格
  • String concat(String s):将指定的字符串参数连接到字符串上
  • int hashCode():返回字符串的哈希码