字符串

1、String对象是不可变的,String类中每一个看起来修改String值得方法,实际上都是创建了一个全新的对象,以包含修改后的字符串内容。
2、显式地创建StringBuilder还允许你为其指定大小。如果预先知道拼接后的字符串长度,可以预先指定大小从而避免多次重新分配缓存。
3、StringBuilder是java SE5引入的,之前用的是StringBuffer。后者是线程安全的,因此开销会大一点。
4、以下代码会出现递归调用对象的toString方法。因为编译器看到String后面接着一个非String对象,就会调用对象的toString方法,从而导致了循环递归。修改方法是,不使用this,而是super.toString();

public class TestClass {
    public String toString(){
        return "address :" + this + "\n";
    }
}

5、java SE5引入的format方法可用于PrintStream或PrintWriter对象,其中也包括System.out对象。

int x = 5;
float = 5.3f;
System.out.format("Row 1 : [%d %f]\n", x, y);
System.out.printf("Row 1 : [%d %f]\n", x, y)

6、Java.util.Formatter类可将你的字符串和数据翻译成需要的结果。当你创建一个Formatter对象的时候,需要传入一个对象,告诉Formatter对象的结果将输出到哪里,比如System.out()。
7、 java SE5,String.format()是一个static方法,接受与Formatter.format()方法一样的参数,但返回一个String对象,当你只需使用format一次的时候,String.format()用起来更方便。
8、组(group)是用括号划分的正则表达式,可以根据组的编号来引用某个组。组号为0表示整个表达式。组号1表示被第一对括号括起的组,以此类推。比如A(B(C))D,组0是ABCD,组1是BC,组2是C。
9、Matcher对象提供了一系列方法,用以获取与组相关的信息:

  • public int groupCount()返回该匹配器的模式中的分组数目,第0组不包括在内。
  • public String group()返回前一次匹配操作(find())的第0组(整个匹配)。
  • public String group(int i)返回在前一次匹配操作期间指定的组号,如果匹配成功,但是指定的组没有匹配输入字符串的任何部分,返回null。
  • public int start(int group),返回在前一次匹配操作中寻找到的组的起始索引。
  • public int end(int group),返回在前一次匹配操作中寻找到的组的最后一个字符索引加一的值。
    10、 find()在输入的任意位置匹配到就算成功。lookingAt()只要输入的第一部分匹配就算成功。matches()只有整个输入都匹配才算成功。
posted @ 2017-06-17 12:27  kejicjk  阅读(144)  评论(0)    收藏  举报