* String对象是不可变的,指向String的任何引用都不可能改变它的值;
* javap -c 反编译工具;
* StringBuilder,java.lang:
StringBuilder append(CharSequence s);
StringBuilder vs StringBuffer:后者是线程安全的,开销也会大些;
* 若希望在toString()中使用this打印出对象的内存地址,则会产生递归调用,应该使用Object.toString();
* 容器,java.util;
* String:
String [] split(String regex);
String [] split(String regex,int limit);
boolean [] matches(String regex);
String replaceFirst(String regex,String replacement);
String replaceAll(String regex,String replacement);
int length();
char charAt();
char [] toCharArray();
boolean equals(),equalsIgnoreCase();
String toLowerCase();
String toUpperCase();//str=str.toUpperCase();
String trim();//将String两端的空白字符删除后,返回一个新的String对象。若没有改变发生,则返回原始的String对象;
valueOf();//返回一个表示参数内容的String;
* 格式化输出:
Formatter,java.util:
new Formatter(输出位置);//PrintStream,OutStream,File,String;
Formatter format(String format,Object... args);
格式化说明符:width precision
d,整数;c,字符;b,boolean;s,String;f,浮点;e,指数型;x,整数(十六进制);h,散列码(十六进制);
%b时,其他类型的参数,只要该参数不为null,那转换的结果永远是true;
String.format();
* 正则表达式:
字符:\t,制表符;\n,换行符;\r,回车符;\f,换页符;\e,转义符;
\\w代表字符,\\s代表空格,\\.代表小数点
字符类:.,任意字符(默认不包括换行符);\s,空白字符(空格,tab,换行,换页,回车);\S,非空白符;\d,数字;
\D,非数字;\w,词字符(默认区分大小写);\W,非词字符;
边界匹配符:^,行首;$,行尾;\b,词的边界;\B,非词的边界;\G,前一个匹配的结束;
量词:*,0~无穷;+,1~无穷;{n,m},n~m;
组:组0是全体,组n是第n个(;
* Pattern,Matcher,java.util.regex;
Pattern:
static boolean matches(String regex,CharSequence input);
static Pattern compile(String regex);
Matcher matcher(CharSequence input);
String pattern();
模式标记:
Pattern.CASE_INSENSITIVE;(?i)
Pattern.CANON_EQ;()
Pattern.COMMENTS;(?x),忽略空格;
Pattern.DOTALL;(?s),"."匹配行终结符;
Pattern.MULTILINE;(?m),"^","$"匹配一行的开始和结束;
Pattern.UNICODE_CASE;(?u)
Pattern.UNIX_LINES;(?d)
Matcher:
Matcher reset(CharSequence input);
boolean matches();
boolean lookingAt();
boolean find();
boolean find(int Start);
int groupCount();
String group();group()要在find()之后使用;
String group(int groupIndex);
int Start();
int end();
find()可以在输入的任意位置定位正则表达式;而lookAt()和matches();只有在正则表达式与输入的最开始处就开始匹配时才能成功;matches()只有在整个输入都匹配正则表达式时才会成功,而lookAt()只要输入的第一部分匹配就会成功;
* Scanner,java.util;
Pattern delimiter();
Scanner useDelimiter(Pattern pattern);
Scanner useDelimiter(String pattern);
Scanner reset();
boolean hasNext();
String next();
String next(String pattern);
MatchResult match();next(String pattern)与match()一起使用;