JavaCookbook-3.字符串与4.正则表达式

来源:互联网 发布:上海plc编程培训 编辑:程序博客网 时间:2024/06/09 17:25

      Java的字符串是一个预定义的类型,也就是说一个字符串并不是一个数组,而是一个对象。需要注意的是,java的字符串是一个不可修改的字符串,所有对他的修改最后都生成了新的字符串。同时String类也是一个final类,所以不可对String类进行继承,来借以对它进行修改。如果要修改字串本身,可以采用StringBuilder(StringBuffer)对象。

      一般,我们常用substring、StringTokenizer来分解字符串,StringTokenizer类实现了迭代器模式和枚举接口。

StringTokenizerst = new StringTokenizer("wang xiaohu, is a good man!","!,");         while (st.hasMoreTokens()) {                   System.out.println(st.nextToken());         }

      参数" !,"指定了字符串分割符,如果没有这个参数,字符串以空格为分隔符,分割后的字符串包括标点符号。在使用+号连接字符串时,编译器将自动构建一个StringBuiler对象,并且调用其append方法。StringBuilder对象在使用时,其所有的操作都是返回本身,这样对效率影响比较低。

      使用堆栈来翻转字符串的方法为:

StringTokenizerst = new StringTokenizer("wang xiaohu, is a good man!","!,");         Stack s = new Stack();         while (st.hasMoreTokens()) {                   s.push(st.nextElement());         }         while (!s.empty()) {                   System.out.print(s.pop()+"");         }

      正则表达式已经被列入Java1.4之后的运行环境,其语法不再赘述。使用方法为:1.测试模式,测试更定字符串是否符合正则表达式。2.查找匹配文本。3.替换匹配文本。例程如下:

1. 测试模式,测试更定字符串是否符合正则表达式。

"g8".matches("^g[a-zA-Z0-9]$")

2. 查找匹配文本

Pattern p =Pattern.compile("(.*), (.*)");                   Matcher m = p.matcher("Smith,John Adams, John quincy");                   System.out.println(m.groupCount());                   if(m.find())                   {                            System.out.println(m.group(1)+m.group(2));                   }

3.替换匹配文本。一般文本编辑器命令中,左手边是替换模式,右手边是替换文本。

参考文章

1.      JavaCookbook-1.编译、运行和调试

原创粉丝点击