Java编程思想-第13章 字符串(要点)

  可以证明,字符串操作是计算机程序设计中最常见的行为 尤其是在Java大展拳脚的Web系统中更是如此。

  在本章中,我们将深入学习在Java语言中应 用最广泛的 String类,并研究与之相关的类及工具。

13.1 不可变 String

  String对象是不可变的。查看JDK文档你就会发现, String类中每一个看起来会修改 String 值的方法,实际上都是创建了一个全新的 String对象,以包含修改后的字符串内容。而最初的 String对象则丝毫未动。 看看下面的代码

// strings/Immutable.java

import static net.mindviewutil.Print.*;

public class Immutable{

   public static String upcase(String s){

    return s.toUpperCase();

  }

  public static void main(String[] args){

    String q = "howdy" print(q); // howdy

    String qq = upcase(q);

    print(qq); // HOWDY

    print(q);  // howdy

   }

}/* Output:

howdy

HOWDY

howdy *///:

13.2 重载“+”与 StringBuilder

   String对象是不可变的,你可以给一个 String对象加任意多的别名。因为String对象具有 只读特性,所以指向它的任何引用都不可能改变它的值,因此,也就不会对其他的引用有什 么影响。 不可变性会带来一定的效率问题。为 String对象重载的“+”操作符就是一个例子。重载的 意思是,一个操作符在应用于特定的类时,被赋予了特殊的意义(用于 String的“+”与“+=” 是Java中仅有的两个重载过的操作符,而Java并不允许程序员重载任何操作符e)。

13.3 无意识的递归

 

 

13.5 格式化输出

  在长久的等待之后, Java SE5终于推出了C语言中 printi0风格的格式化输出这一功能。这不仅 使得控制输出的代码更加简单,同时也给与Java开发者对于输出格式与排列更强大的控制能力。

13.5.1 printf()

13.5.2 System.out.format()

13.5.3 Formatter类

13.5.4 格式化说明符

 

13.6 正则表达式

13.7 扫描输入

13.9 总结

  过去,Java对字符串操作的支持相当不完善。不过随着近几个版本的升级,我们可以看到 Java已经从其他语言中吸取了许多成熟的经验。到目前为止,它对字符串操作的支持已经很完 善了。不过,有时你还要在细节上注意效率的问题,例如恰当地使用 String Builder等。

posted @ 2018-03-12 14:41  JackYgy  阅读(98)  评论(0)    收藏  举报