黑马程序员技术交流社区

标题: 怎样用正则表达式理解这个问题 [打印本页]

作者: 凡延海    时间: 2012-6-1 14:03
标题: 怎样用正则表达式理解这个问题
给定字符串“afbdg23556dg3552”我想用统计这里边数字的个数,我用遍历一个一个的字符去做了,但是感觉比较繁琐,那怎样用正则表达式来做呢,我没有头绪,请高手指点。

作者: 林豪    时间: 2012-6-1 14:09
现用获取获得所有数字,在统计数字
作者: 何阳    时间: 2012-6-1 14:20
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                String str = "afbdg23556dg3552";
                // 定义一个正则
                String reglx = "\\d";
                Pattern p = Pattern.compile(reglx);
                Matcher m = p.matcher(str);
                int count = 0;
                // 找到一次,计数器累加一次
                while (m.find()) {
                        count++;
                }
                System.out.println(count);
        }
}
作者: 闾丘日月    时间: 2012-6-1 17:34
遍历一个一个的字符去做了,但是感觉比较繁琐............
大家应该都是这么做的,正则表达式是为了增加描述字符串的方便的,就是让你在遍历的时候少写一些个if else之类的判断啥的。。
一个循环还繁琐。。那人家排序都用双重循环的怎么活。。。
当然你如果是这个例子的话我到是有简单的方法给你。。split(reg)   reg 为\w+,找些方法会让代码看起来少些,没用循环什么的。
实际上人家底层还是用的循环啊。。 效果还真不如你觉得比较繁琐的。
作者: 闾丘日月    时间: 2012-6-1 19:06
replaceAll确实让程序看起来简单了许多,又学到一点东西。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2