123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 |
- package me.yoqi.composename;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Date;
- import qh.lqg.utils.HanDict;
- import qh.lqg.utils.Messages;
- import qh.lqg.utils.TextHelper;
- import qh.lqg.utils.TimeHelper;
- /**
- * ClassName: Compose <br/>
- * Function: 对3500个汉字两两组合. <br/>
- * date: 2016年8月7日 上午11:51:28 <br/>
- *
- * @author liuyuqi
- * @version
- * @since JDK 1.7
- */
- public class Compose {
- static SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 设置日期格式
- static long startTime = System.currentTimeMillis();
- String dataUrl = Messages.getString("Compose.data");
- static String resultUrl = Messages.getString("Compose.resultUrl");
- public static void main(String args[]) throws Exception {
- System.out.println("程序开始时间:" + df.format(new Date()));// new
- // Date()为获取当前系统时间
- new Compose().getComposeName();
- new Compose().countNum(resultUrl);
- long endTime = System.currentTimeMillis();
- System.out.println("程序结束时间:" + df.format(new Date()));// new
- // Date()为获取当前系统时间
- System.out.println("总耗时" + TimeHelper.getTimeDiff(startTime, endTime));
- }
- /**
- * @param resultUrl
- * @throws Exception
- */
- private void countNum(String resultUrl) throws Exception {
- TextHelper textHelper = new TextHelper();
- String allChinese = textHelper.readTextByLine(dataUrl);
- char[] chars = allChinese.toCharArray();
- String[] result2 = new String[30];
- //初始化空字符
- for (int i = 0; i < result2.length; i++) {
- result2[i] = "";
- }
- for (int i = 0; i < chars.length; i++) {
- int length = HanDict.getBH(chars[i]).length();
- switch (length) {
- case 1:
- result2[0] += chars[i];
- break;
- case 2:
- result2[1] += chars[i];
- break;
- case 3:
- result2[2] += chars[i];
- break;
- case 4:
- result2[3] += chars[i];
- break;
- case 5:
- result2[4] += chars[i];
- break;
- case 6:
- result2[5] += chars[i];
- break;
- case 7:
- result2[6] += chars[i];
- break;
- case 8:
- result2[7] += chars[i];
- break;
- case 9:
- result2[8] += chars[i];
- break;
- case 10:
- result2[9] += chars[i];
- break;
- case 11:
- result2[10] += chars[i];
- break;
- case 12:
- result2[11] += chars[i];
- break;
- case 13:
- result2[12] += chars[i];
- break;
- case 14:
- result2[13] += chars[i];
- break;
- case 15:
- result2[14] += chars[i];
- break;
- case 16:
- result2[15] += chars[i];
- break;
- case 17:
- result2[16] += chars[i];
- break;
- case 18:
- result2[17] += chars[i];
- break;
- case 19:
- result2[18] += chars[i];
- break;
- case 20:
- result2[19] += chars[i];
- break;
- case 21:
- result2[20] += chars[i];
- break;
- case 22:
- result2[21] += chars[i];
- break;
- case 23:
- result2[22] += chars[i];
- break;
- case 24:
- result2[23] += chars[i];
- break;
- case 25:
- result2[24] += chars[i];
- break;
- case 26:
- result2[25] += chars[i];
- break;
- case 27:
- result2[26] += chars[i];
- break;
- case 28:
- result2[27] += chars[i];
- break;
- case 29:
- result2[28] += chars[i];
- break;
- }
- }
- for (int i = 0; i < 24; i++) {
- System.out.println((i + 1) + "笔画数: " + result2[i]);
- }
- }
- /**
- * getComposeName:(组合双词), output:data/result.txt. <br/>
- *
- * @author liuyuqi
- * @throws Exception
- * @since JDK 1.7
- */
- private void getComposeName() throws Exception {
- String result = "";
- TextHelper textHelper = new TextHelper();
- // 获取原始数据
- ArrayList<String> allChinese = textHelper.readTextByWord(dataUrl);
- ArrayList<String> allChineseName = new ArrayList<String>();
- int flag = 0;
- // 两两组合
- for (int i = 0; i < allChinese.size(); i++) {
- for (int j = i + 1; j < allChinese.size(); j++) {
- allChineseName.add(allChinese.get(i) + allChinese.get(j));
- }
- }
- // 加空格
- for (int k = 0; k < allChineseName.size(); k++) {
- result += allChineseName.get(k) + " ";
- }
- flag++;
- TextHelper.writeText(resultUrl, result);
- long endTime = System.currentTimeMillis();
- System.out.println("当前耗时:" + TimeHelper.getTimeDiff(startTime, endTime));
- System.out.println(flag);
- }
- }
|