2014.1.15 Java String && RegEx

* 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()一起使用;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值