java cookbook 3_JavaCookbook-3.字符串与4.正则表达式

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.替换匹配文本。一般文本编辑器命令中,左手边是替换模式,右手边是替换文本。

参考文章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值