Java实现统计福彩双色球出现次数(毫无技术可言)

来源:互联网 发布:批量网页录入数据 编辑:程序博客网 时间:2024/05/16 19:55

今天早上闲来无事,恰好在看微博的时候看到的双色球的开奖视频,没出现一个号,主持人就会报出现了多少次,于是自己就无聊的写了一下统计每期的号码出现的次数程序。

彩票号码数据来自网上:



代码如下Money.java:

package com.heynine.money;import java.io.BufferedReader;import java.io.File;import java.io.FileOutputStream;import java.io.FileReader;import java.io.PrintStream;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class Money {private List<Map<String, String>> mOldDatas;/** * 初始化数据 * @throws Exception  */private void initData() throws Exception {mOldDatas = new ArrayList<Map<String, String>>();File dataFile = new File("datas.txt");BufferedReader reader = new BufferedReader(new FileReader(dataFile));String line = null;while((line = reader.readLine()) != null) {Map<String, String> map = new HashMap<String, String>();//得到时间String date = line.substring(0, 10);map.put("date", date);//取得第几期String number = line.substring(11, 18);map.put("number", number);//红色号码String red = line.substring(20, 37);map.put("red", red);//蓝色号码String blue = line.substring(38, 40);map.put("blue", blue);mOldDatas.add(map);}reader.close();}/** * 统计数据 */private void count() {for (int i = 0; i < mOldDatas.size(); i++) {Map<String, String> mapNow = mOldDatas.get(i);String[] redNow = mapNow.get("red").split(" ");String blueNow = mapNow.get("blue");//蓝色出现的次数包括现在的次数,所以初始化为1int countBlue = 1;  int[] countRed = new int[redNow.length];////初始化红色号码统计次数为1for (int n = 0; n < countRed.length; n++) {countRed[n] = 1;}//统计红色号码次数String strCountRed = "";for (int m = 0; m < redNow.length; m++) {for (int j = i + 1; j < mOldDatas.size(); j++) {Map<String, String> mapOld = mOldDatas.get(j);String redOld = mapOld.get("red");if (redOld.contains(redNow[m])) {countRed[m]++;}}// 对齐处理if (m == redNow.length - 1) {if (countRed[m] < 10) {strCountRed = strCountRed + countRed[m] + " ";} else {strCountRed = strCountRed + countRed[m];}} else {if (countRed[m] < 10) {strCountRed = strCountRed + countRed[m] + "  ";} else {strCountRed = strCountRed + countRed[m] + " ";}}}// 保存mapNow.put("countred", strCountRed);//统计蓝色号码次数for (int j = i + 1; j < mOldDatas.size(); j++) {Map<String, String> mapOld = mOldDatas.get(j);String blueOld = mapOld.get("blue");if (blueNow.equals(blueOld)) {countBlue++;}}mapNow.put("countblue", countBlue + "");}}/** * 数据数据 * @throws Exception */private void output() throws Exception {System.out.println("开始统计");FileOutputStream out = new FileOutputStream(new File("out.txt"));PrintStream p=new PrintStream(out);for (int i =0; i < mOldDatas.size(); i++) {Map<String, String> map = mOldDatas.get(i);System.out.println("正在统计第 " + map.get("number") + "期 ...");p.println(map.get("date") + "   " + map.get("number") + "期");p.println("号码:" + map.get("red") + "  " + map.get("blue"));p.println("次数:" + map.get("countred") + "  " + map.get("countblue"));p.println();}p.close();out.close();System.out.println("统计完成!");}public static void main(String[] args) {Money money = new Money();try {money.initData();money.count();money.output();} catch (Exception e) {e.printStackTrace();}}}

运行结果:

       

输出到文本结果:

          

原创粉丝点击