日期:2014-05-20  浏览次数:20747 次

java从文件流中读取数字问题
今天参加了个什么什么软件大赛。。最后有几题关于文件解析的没有思路。。求大神指点!
题目大概是这样:一个txt文件中有很多字符,比如:dstd!#$%GHdfasdfahpoh4891deiiqoe3981dfhih131345hdoihadf9387
现在要从这个文件里把所有的数字提取出来,应该用什么方法呢?最好几行具体代码。。比如什么函数?split()可以么?

还有一题是:一个txt文件中有很多字符,比如:ewrewr123dfqefrqewr123ewrqwer456rwtert456rtwergwgr123rkojow,
现在要统计123出现的次数和456出现的次数。。该怎么办呢。。。
求大神指点!求大神指点!求大神指点!求大神指点!

------解决方案--------------------
用正则表达式,还有Pattern和Matcher类,去看这两个类的API吧,用起来简单明了
------解决方案--------------------
我不会正则表达式,自己写代码实现了,效率可能不是很好,但是能完成题目要求的。
直接给代码了,虽然不是很好,你自己再琢磨琢磨吧。

题目一
Java code

    public static void main(String[] args) {
        //读文件的代码就不用写了吧,假设文件内容已经读取到str变量中
        String str="dstd!#$%GHdfasdfahpoh4891deiiqoe3981dfhih131345hdoihadf9387";
        StringBuffer newStr=new StringBuffer();
        byte[] arr=str.getBytes();
        //遍历字符串的所有字符,判断为数字就保存起来
        for (byte b : arr) {
            if(b>=48 && b<=57)
                newStr.append((char)b);
        }
        System.out.println("所有的数字:"+newStr);
    }