[java] 字符串类

String类

  • 创建之后不会再做修改和变动,即immutable

StringBuffer, StringBuilder类

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

字符串常量

  • 除了immutable特点外,还要注意String常量的内部化(interned)问题
  • 即同样的字符串常量是合同的(是指向同一个引用的)
  • 以保证"abc" == "abc"
  • 但是"abc" != new String("abc")

“==” 和 equals()的区别

  • ”==” 是判断引用是否相等, equals()是判断内容是否相等, 比较字符串用equals()

字符串的分割

  • java.util.StringToken类提供了对字符串进行分割的功能
  • 构造`StringToken(String str, String delim);
  • 该类的重要方法有
    public int countTokens();//分割串的个数
    public boolean hasMoreTokens();//是否还有分割串
    public String nextToken();//得到下一分割串
  • 示例
    import java.util.*;
    class TestStringTokenizer{
    public static void main(String[] args){
      StringTokenizer st = new StringTokenizer("this is a test", " ");
      while(st.hasMoreTokens()){
        System.out.println(st.nextToken());
      }
      st = new StringTokenizer("253,197,546", ",");
      double sum = 0;
      while(st.hasMoreTokens()){
        sum += Double.parseDouble(st.nextToken());
      }
    }  
    }
    
Written on December 8, 2022