A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 凡延海 中级黑马   /  2012-6-1 14:03  /  1975 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

给定字符串“afbdg23556dg3552”我想用统计这里边数字的个数,我用遍历一个一个的字符去做了,但是感觉比较繁琐,那怎样用正则表达式来做呢,我没有头绪,请高手指点。

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

4 个回复

倒序浏览
现用获取获得所有数字,在统计数字
回复 使用道具 举报
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);
        }
}
回复 使用道具 举报
遍历一个一个的字符去做了,但是感觉比较繁琐............
大家应该都是这么做的,正则表达式是为了增加描述字符串的方便的,就是让你在遍历的时候少写一些个if else之类的判断啥的。。
一个循环还繁琐。。那人家排序都用双重循环的怎么活。。。
当然你如果是这个例子的话我到是有简单的方法给你。。split(reg)   reg 为\w+,找些方法会让代码看起来少些,没用循环什么的。
实际上人家底层还是用的循环啊。。 效果还真不如你觉得比较繁琐的。
回复 使用道具 举报
replaceAll确实让程序看起来简单了许多,又学到一点东西。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马