字符串

    在java中,字符串被作为String类型的对象处理。String类位于java.lang包中,默认情况下,该包被自动导入所有的程序。

  Java字符串的不变性

  String对象创建后不能被修改,是不可变的,所谓的修改其实是创建了新的对象,所指向的内存空间不同。

  如果需要一个可以改变的字符串可以使用StringBuffer或者StringBuilder。

  每次 new 一个字符串就是产生一个新的对象,即便两个字符串的内容相同,使用 ”==” 比较时也为 ”false” ,如果只需比较内容是否相同,应使用 ”equals()” 方法。

  常量池在Java中是用于保存在编译期已确定的、已编译的class文件中的数据。

  String类常用的方法:

 

  例题:判断邮箱格式是否正确:合法的邮箱名中至少要包含"@", 并且"@"是在"."之前      

     int index2 = email.indexOf('@');    

    int index3 = email.indexOf('.');
    if (index2 != -1 && index3 > index2) {
     System.out.println("邮箱格式正确");
    } else {
      System.out.println("邮箱格式无效");
      }
  ⑷
String 类具有可变性,频繁操作字符串时会产生很多临时变量,使用 StringBuilder 或 StringBuffer
可以避免这个问题。它们基本相似,不同之处是 StringBuffer 是线程安全的,所以性能略高。一般情况下创
建一个内容
可变的字符串对象,优先使用 StringBuiler 类。

  注:String str = "a" + s 与 String str = new StringBuilder().append("a").append("s").toString();是一样的。               


  ⑸ 日期相关类
  Date 类表示特定的瞬间,精确到毫秒。

  DateFormat 与 SimpleDateFormat 类,DateFormat是一个抽象类。

 Calendar 与 GregorianCalendar 类,Calendar 是一个抽象类。

      将Calendar转换为Date类型:
       Date d = c.getTime();
       String str = sdf.format(d);

       System.out.println(str);


  ⑹ 数学运算符相关类

      浮点数做运算,需要注意的问题
      1.使用BigDecimal类
      2.(最简单的方式)BigDecimal类中构造方法传入的值最好转换为String类型
        float f1 = 0.06f;
        float f2 = 0.01f;
        BigDecimal bd1 = new BigDecimal(String.valueOf(0.06));
        BigDecimal bd2 = new BigDecimal(String.valueOf(0.01));
        //加法
        BigDecimal addBD = bd1.add(bd2);
        double b = addBD.doubleValue();
        //减法
        double b2 = bd1.subtract(bd2).doubleValue();
        //乘法
        double b3 = bd1.multiply(bd2).doubleValue();
        //除法
        double b4 = bd1.divide(bd2).doubleValue();
        System.out.println(b);