Java程序设计:字符串类

字符串可以分为两大类
1.String类
• 创建之后不会再做修改和变动,即 immutable

2.StringBuffer、StringBuilder类
• 创建之后允许再做更改和变化
• 其中 StringBuilder是JDK1.5增加的,它是非线程安全的,但是效率较高

特别注意:

在循环中使用String的+=可能会带来效率问题

String类

String 类对象保存不可修改(immutable)的Unicode字符序列

  • String类的下述方法能创建并返回一个新的String对象实例: concat, replace,
    replaceAll, substring, toLowerCase, toUpperCase, trim,toString.
  • 查找: endsWith, startsWith, indexOf,,lastIndexOf.
  • 比较: equals, equalsIgnoreCase,
  • 字符及长度: charAt ,length.
  • format函数
    • %1,8.5f,8.5f %序号 标识 宽度及精度 转换方式

  • String常量的内部化(interned)问题
    • 即同样的字符串常量是合并的(是指向同一个引用的)

“abc”==“abc”
但是 “abc” != new String(“abc”)

StringBuffer,StringBuilder类

  • StringBuffer类对象保存可修改的Unicode字符序列
  • StringBuilder类似,它效率更高,不考虑线程安全性
    • 构造方法
    StringBuffer()
    StringBuffer(int capacity)
    StringBuffer(String initialString)
    • 实现修改操作的方法:
    append, insert, reverse, setCharAt, setLength.

StringTokenizer类

java.util.StringTokenizer类提供了对字符串进行分割的功能。
• 构造
StringTokenizer(String str, String delim);
• 该类的重要方法有:
public int countTokens();// 分割串的个数
public boolean hasMoreTokens();// 是否还有分割串
public String nextToken();// 得到下一分割串
• 另String类的 matches, replaceAll, split可以使用正则表达式