sn8201 2008-12-16 10:58
浏览 187
已采纳

请教java处理txt文本文件

3 10 11 21 30 34 36 40 41 53 58 64 68 76 85 87 91 94 101 104 116 123

3 10 20 21 23 34 36 39 41 53 56 64 68 76 85 87 91 94 101 105 115 119

1 10 19 21 24 34 36 39 42 53 56 64 68 76 85 87 91 94 101 105 115 121

3 9 19 21 30 34 36 40 42 53 58 64 68 76 85 87 91 94 101 104 116 123

3 10 14 22 29 34 37 39 41 54 58 64 68 76 85 87 91 94 97 105 113 119

3 9 20 21 23 34 36 39 42 53 56 64 68 76 85 87 91 94 101 104 115 119

1 10 19 21 23 34 36 39 45 53 56 64 68 76 85 87 91 94 101 104 115 121

上面是要处理的txt文件

谁能告诉我怎么编写个程序实现查找统计

就是按列来分析

比方第一列,3的个数是5,1的个数是2,然后再第二列10的个数是5……

然后输出每个数及其个数?

谢谢

  • 写回答

4条回答 默认 最新

  • anndefans 2008-12-16 22:46
    关注

    [code="java"]
    try {

            File file = new File("D:/work/eclipse_workspace/TST/src/l.txt");
            FileReader reader = new FileReader(file);
            BufferedReader in = new BufferedReader(reader);
            String currentLine = "";
            StringBuffer strBuffer = new StringBuffer(1000);
            while ((currentLine = in.readLine()) != null) {
                strBuffer.append(currentLine);
                strBuffer.append("@");
            }
    
            String[] strTemp = (strBuffer.toString()).split("@");
            if (strTemp.length > 0) {
                int numberCount = strTemp[0].split(" ").length;
                String[][] strResult = new String[strTemp.length][numberCount];
                for (int i = 0; i < strTemp.length; ++i) {
                    strResult[i] = strTemp[i].split(" ");
                }
    
                for (int j = 0; j < numberCount; j++) {
                    TreeMap<String, Integer> numbersMap = new TreeMap<String, Integer>();
                    for (int i = 0; i < strResult.length; i++) {
    
                        if (numbersMap.containsKey(strResult[i][j])) {
                            int count = (Integer) numbersMap
                                    .get(strResult[i][j]);
                            numbersMap.put(strResult[i][j], count + 1);
                        } else {
                            numbersMap.put(strResult[i][j], 1);
                        }
                    }
                    Iterator it =numbersMap.keySet().iterator(); 
                    while (it.hasNext()) {
                        String key = (String) it.next();
                        System.out.println(key + "的数量是:" + numbersMap.get(key));
                    }
                    System.out.println("\n");
                }       
    
                in.close();
                reader.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    

    [/code]
    1的数量是:2

    3的数量是:5

    10的数量是:5

    9的数量是:2

    ......

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)