取名

撸了今年阿里、头条和美团的面试,我有一个重要发现.......>>> hot3.png

前阵子借了一本相关术士的书籍,里面其中有一章是介绍关于取名的知识。江湖术士取名其中会根据名字的笔画通过一定的规则来计算,计算其对应的总格、天格、人格、地格以及外格,从而判断该名对个人运势的影响是好或坏(人定胜天哈)。这就是名字所谓的数格。

既然如此,刚好我家二宝准备来跟我见面了。那我何不把所有文字通过遍历、组合,取其笔画数(对应康字典上的繁体字笔画),通过上述所说的规则计算后,符合数格数为吉的文字全部记录下来,然后再人为筛选自己所喜欢的文字为最终名字(因为计算出来的名字很多都是怪异、滑稽的)...

嗯,技术改变命运的时刻到了。

1.上面需要用到文字对应康熙字典上的繁体字笔画数。京东--康熙字典--下单--查--对应的笔画,如果是这么一个流程,这还叫技术改变命运吗?

秉着程序员的三大优点:懒惰、急躁、傲慢,虽然我不算一个程序员,但是至少也跟程序员沾亲带故——懒惰。

让我一个字一个字去查康熙字典,然后记下来,如此,毋宁死。既然懒惰如我,那么网络爬虫走起可好?(可能不算是个爬虫,充其量算是个虫卵,不过能达成目标即可)

该“虫卵”的目标:从康熙字典在线查询,获取某个文字的笔画数,且写入本地txt。

 

//偏旁部首查字,部首首页源码

RequestHTTP

package generatorName;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

/** 
 * @author 苏宝伢 E-mail:[email protected] 
 * @version 创建时间: 2018年1月18日 上午9:23:30
 */
public class RequestHTTP {
	//通过url访问地址,然后接受服务器相应回来的内容,存入String中
		public static String getResponseFromUrl(String urlPath){
			String acept = "";
			URL openUrl = null;
			URLConnection conn = null;
			BufferedReader read = null;
			try {
				openUrl = new URL(urlPath);
				conn = openUrl.openConnection();
				read = new BufferedReader(new InputStreamReader(conn.getInputStream(),"utf-8"));
				String strTemp = "";
				while((strTemp=read.readLine())!=null){
//					acept += new String(strTemp.getBytes("utf-8"),"gb2312");
					acept += strTemp;
				}
			} catch (IOException e) {
				System.out.println("从服务器获取源文件失败");
				e.printStackTrace();
			} finally{
				if(read != null){
					try {
						read.close();
					} catch (IOException e) {
						System.out.println("读取源文件出异常~");
						e.printStackTrace();
					}
				}
			}
			return acept;
		}

}

 

OperationResponseHTTP

package generatorName;

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;

/** 
 * @author 苏宝伢 E-mail:[email protected] 
 * @version 创建时间: 2018年1月18日 上午9:25:53
 */
public class OperationResponseHTTP {
	//按照某个规则(譬如:笔画,链接)来分段截取内容,并存入linkedHashMap中
		public static Map filterString(String sourceStr,String regex){
			int count = 1;
			int tempNum = 0;
			int firstNum = 1;
			int position = 0;
			LinkedHashMap linkMap = new LinkedHashMap<>();
			Matcher m = RegularExpressions.matcherMethod(sourceStr,regex);
			while(m.find()){
				position = sourceStr.indexOf(regex + count);
				if(count == firstNum){//第一次进来,只有起始位置
					tempNum = position;
				}else{//通过上一次的位置,加上这一次的位置,截取子字符串
					position = sourceStr.indexOf(regex + count);
					linkMap.put(count - 1, sourceStr.substring(tempNum,position));
					tempNum = position;
				}
				count ++;
			}
			//最后一次截取
			linkMap.put(count - 1, sourceStr.substring(tempNum));
			return linkMap;
		}
		
		//解析存在map中的相应内容
		public static String analysisMap(Map responeMap){
			for(Map.Entry entry:responeMap.entrySet()){
				System.out.println(entry.getValue());
			}
//			Iterator> iter = responeMap.entrySet().iterator();
//			while(iter.hasNext()){
//				Map.Entry entry = iter.next();
//				System.out.println("----------------"+entry.getKey() + entry.getValue());
//			}
			return "";
		}
		
	//通过
		public static String getHerfString(Map m,String sourceStr,String regex){
			m = new LinkedHashMap<>();
			
			return "";
		}
		
	//获取源码中的链接
		public static List getSourceRUL(String source,String regex){
			ArrayList list = new ArrayList<>();
			Matcher m = RegularExpressions.matcherMethod(source,regex);
			while(m.find()){
				list.add(m.group());
			}
			return list;
		}
		
		//获取某个部首包含所有汉字的源码
		public static List getBHOfUrlFromSource(List list,String urlHeader,String regex){
			ArrayList newList = new ArrayList<>();
			for(String strBHSource:list){
				String source = RequestHTTP.getResponseFromUrl(urlHeader + strBHSource);
				ArrayList tempList = (ArrayList)getSourceRUL(source,regex);
				for(String wenzi:tempList){
					newList.add(wenzi);
				}
			}
			return newList;
		}
		
		//获取某个文字的笔画和五行所属
		public static void getWordResult(List list,String urlHeader,String regex){
			Matcher m = null;
			String wordSour = "";
			System.out.println("write start!");
			for(String result:list){
				wordSour = RequestHTTP.getResponseFromUrl(urlHeader + result);
				m = RegularExpressions.matcherMethod(wordSour,regex);
				while(m.find()){
					System.out.println(m.group(1)+m.group(4));
					WriteResultToTxt.writeResult(m.group(1)+"," + m.group(4));
				}
			}
			System.out.println("write end!");
		}
}

TestGetInfo

package generatorName;

import java.util.List;

/** 
 * @author 苏宝伢 E-mail:[email protected] 
 * @version 创建时间: 2018年1月18日 上午9:46:54
 */
public class TestGetInfo {

	public static void main(String[] args) {
		SetProxy.setProperties();
		String allPPBS = "";
		List list = null;
		
		//偏旁部首查字,部首首页源码
		allPPBS = RequestHTTP.getResponseFromUrl("http://tool.httpcn.com/KangXi/BuShou.html");

		//所有部首的url
		list = OperationResponseHTTP.getSourceRUL(allPPBS, "/Html/KangXi/BuShou/.{3,6}.html");
		
		//通过遍历某一部首的所有汉字,获取所有汉字的URL
		list = OperationResponseHTTP.getBHOfUrlFromSource(list,"http://tool.httpcn.com/","/Html/KangXi/\\d{1,}/\\w{3,}.shtml");
		//把初步过滤的结果写到本地
		OperationResponseHTTP.getWordResult(list,"http://tool.httpcn.com/","『([\\u4e00-\\u9fa5]{1})』.*(){1}(\\(([^)]*)\\))");

	}

}
package calcFortune;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

/** 
 * @author 苏宝伢 E-mail:[email protected] 
 * @version 创建时间: 2018年1月30日 下午1:51:33
 */
public class WriteResultToTxt {
	public static void writeResult(String textContent,String fileName){
		String resultText = textContent;
		try{
			BufferedWriter bw = new BufferedWriter(new FileWriter(new File(".\\" + fileName + ".txt"),true));
			bw.write(resultText,0,resultText.length());
//			bw.newLine();
			bw.close();
			
		}catch(IOException e){
			
		}
		
	}
}

以上代码执行之后,会在项目当前路径多一个result.txt文件,内容摘录如下:

丨, 丨:1; 
丩, 丩:2; 
丫, 丫:3; 
中, 中:4; 
丮, 丮:4; 
丯, 丯:4; 
丰, 丰:4;豐:18; 
丱, 丱:5; 
串, 串:7; 
丳, 丳:8; 
临, 臨:17; 

公司访问外网,需要代理,故加上下面这段

SetProxy

package generatorName;
/** 
 * @author 苏宝伢 E-mail:[email protected] 
 * @version 创建时间: 2018年1月18日 上午9:51:21
 */
public class SetProxy {
	 //设置代理http
		public static void setProperties(){
			System.getProperties().setProperty("proxySet", "true"); 
	        //用的代理服务器  
	        System.getProperties().setProperty("http.proxyHost", "10.158.166.11"); 
	        //代理端口  
	        System.getProperties().setProperty("http.proxyPort", "8080"); 
		}

}

-----------已经有了文字及其对应的笔画数(可能某个文字由于某种处理规则,被剔除),那么可以继续下一步了。为了不每次都请求在线康熙字典(因为遍历所有文字,需要很长时间),故此,下面这部分我搞成另外一个项目。数据直接读取上面写好的result.txt。

CalcFortune

package test;

import java.util.Map;
import javax.print.attribute.standard.MediaSize.Other;

/** 
 * @author 苏宝伢 E-mail:[email protected] 
 * @version 创建时间: 2018年1月30日 下午2:33:46
 */
public class CalcForTune {
	
	public static String calcThreeLengthFortune(Map nameAndBH,String firstName){
		String allName = firstName;
		int firstNameNo = getBHFromWord(nameAndBH,firstName);
		int middleNameNo = 0;
		int endNameNo = 0;
		boolean flag = false;
		int count = 0;
		for(Map.Entry middleNameEntry:nameAndBH.entrySet()){
			middleNameNo = middleNameEntry.getValue();
			for(Map.Entry endNameEntry:nameAndBH.entrySet()){
				endNameNo = endNameEntry.getValue();
				flag = compareNameAndFortune(firstNameNo,middleNameNo,endNameNo);
			
				if(flag){
					count ++;
					String resultOfName = firstName + middleNameEntry.getKey() + endNameEntry.getKey() + ",";
					
					if(count % 16 == 0){
						resultOfName = resultOfName.substring(0,resultOfName.length()-1) + "\r\n";
					}
					WriteResultToTxt.writeResult(resultOfName,"resultName");
					System.out.print(resultOfName);
				}
			}
		}
		System.out.println(count);
		return allName;
	}
	public static int getBHFromWord(Map nameAndBH,String word){
		if(nameAndBH.get(word)==null) return 0;
		return nameAndBH.get(word);
	}
	
	public static boolean compareNameAndFortune(int firstNameNo,int middleNameNo,int endNameNo){
		/**
		 * 地格 15 的解析:(地格数又称前运,影响人中年(36岁)以前的活动力。)
		福寿双全的立身兴家数。【大吉】
		基业:天官,贵人,福星、官禄、祖基、进田、畜产。
		家庭:清净家风,圆满之象,子孙昌盛。
		健康:海底明珠,安稳馀庆,健康自在。
		含义:此数为最大好运,福寿圆满之象。顺和、温良、雅量。多受福泽,德高望重,自成大业,富贵荣华,吉祥有德,繁荣兴家的大吉数。
		 */
		int positionNo = 1;
		int totalFortune = firstNameNo + middleNameNo + endNameNo;
		int personFortune = firstNameNo + middleNameNo;
		int earthFortune = middleNameNo + endNameNo;
		int outFortune = endNameNo + positionNo;
		
		for(int fortune:getLuckFortuneNo()){
			if(fortune == totalFortune&&totalFortune>=28 &&totalFortune <= 42 && totalFortune != 38){
//			if(fortune == totalFortune){
				for(int fortunePerson:getLuckFortuneNo()){
					if(fortunePerson == personFortune){
						for(int fortuneEarth:getLuckFortuneNo()){
							if(fortuneEarth == earthFortune){
								for(int fortuneOut:getLuckFortuneNo()){
									if(fortuneOut == outFortune){
										return true;
									}
								}
							}
						}
					}
				}
			}
		}
		return false;
	}
	public static int[] getLuckFortuneNo(){
		//女孩32好,11,21和23,33不好
		int[] luckFortune = {1,3,5,6,7,8,11,13,15,16,24,31,32,35,37,41,45,47,48,52,57,61,63,65,67,68,81};
//		int[] luckFortune = {11,13,15,16,24,31,32,33,35,37,38,39,41,45,47,48,52,57,61,63,65,67,68,81};
		return luckFortune;
	}

}

 

package calcFortune;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

/** 
 * @author 苏宝伢 E-mail:[email protected] 
 * @version 创建时间: 2018年1月31日 上午10:48:57
 */
public class OperationLocalFile {

	public static String analyzeString(String[] content) {
		String joint = "";
		ArrayList list = new ArrayList<>();
		int arrayFirstElement = 0,arrayTwoElement = 1,arrayEndElement = 2;
		//String[] content = "託, 託:10;托:7; ,是否为常用字:否".split(",");
		for(int i=0;i list = new ArrayList<>();
		
		for(int i=0;i parms){
		int result = 0;
		for(int i=0;i datasource,String word){
		for(Entry set:datasource.entrySet()){
			if(set.getKey().equals(word)){
				return set.getValue();
			}
		}
		return 0;
	}
	
	//输入某个笔画,然后匹配出所有该笔画的文字
	public static List findWordAboutNumber(Map dataSource,int bhNo){
		
		List wordList = new ArrayList<>();
		
		for(Entry set:dataSource.entrySet()){
			if(bhNo == set.getValue()){
				wordList.add(set.getKey());
			}
		}
		return wordList;
	}
}

 

package calcFortune;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.LinkedHashMap;
import java.util.Map;

/** 
 * @author 苏宝伢 E-mail:[email protected] 
 * @version 创建时间: 2018年1月30日 下午1:50:06
 */
public class ReadResultFromLocal {

public static Map getResultFromLocalFile(String filePath){
		
		BufferedReader br = null ;
		String tempStr = "";
		String[] tempArr = null;
		Map mapNameAndBH = new LinkedHashMap();

		try{
			br = new BufferedReader(new FileReader(new File(filePath)));

			while((tempStr=br.readLine())!=null){
				tempArr = tempStr.split(",");
				tempArr = OperationLocalFile.analyzeString(tempArr).split(",");
				if(tempArr.length<=1){
//					System.out.println(tempStr);
					continue;
				}
				mapNameAndBH.put(tempArr[0], Integer.valueOf(tempArr[1]));
			}
		}catch(IOException fnf){
			System.out.println("没有该文件或目录");
			fnf.printStackTrace();
		}finally{
			try{
				br.close();
			}catch(IOException e){
				System.out.println("关闭以前关闭的流无效~!");
				e.printStackTrace();
			}
		}
		return mapNameAndBH;
	}
}


 

package calcFortune;

import java.util.Map;
import java.util.Scanner;

/** 
 * @author 苏宝伢 E-mail:[email protected] 
 * @version 创建时间: 2018年1月30日 下午1:42:38
 */
public class Test {
	public static void main(String[] args){
		Map nameAndBH = ReadResultFromLocal.getResultFromLocalFile("./LocalDate.txt");
		CalcForTune.calcThreeLengthFortune(nameAndBH,"苏");
//		findAllWordFromBH(22);
//		System.out.println(getBHfromWord("苏"));
//		System.out.println(getBHfromWord("美"));
//		System.out.println(getBHfromWord("冰"));
//		System.out.println(CalcForTune.compareNameAndFortune(getBHfromWord("苏"),getBHfromWord("美"),getBHfromWord("冰")));
	}
	
	public static void findAllWordFromBH(int bhNo){
		Map nameAndBH = ReadResultFromLocal.getResultFromLocalFile("./sourceWordAll.txt");
		System.out.println(OperationLocalFile.findWordAboutNumber(nameAndBH, bhNo));
	}
	
	public static int getBHfromWord(String word){
		Map nameAndBH = ReadResultFromLocal.getResultFromLocalFile("./sourceWordAll.txt");
		return OperationLocalFile.getNumberFromWord(nameAndBH, word);
	}
}

 

------End!整个项目到此结束。下面是写这个项目中的一些历史代码和数格资料。

------End!整个项目到此结束。下面是写这个项目中的一些历史代码和数格资料。

------End!整个项目到此结束。下面是写这个项目中的一些历史代码和数格资料。

 

 

32最适合女孩子的数理,可以总格。苏姓笔画为22.其天格为22+1=23,其五行属火

一二为木,一为阳木,二为阴木,三四为火,五六为土,七八为金,九O为水,奇为阳,偶为阴

三才配

 

1.先取笔画
http://tool.httpcn.com/KangXi/BuShou.html
笔画2,且拿到该笔画数的所有部首
http://tool.httpcn.com/Html/KangXi/BuShou/2_9.html         /Html/KangXi/BuShou/2_9.html
2.进入该部首,拿到所有的汉字
/Html/KangXi/41/ILAZXVILMERNFXVF.shtml
3.进入汉字页,取
a.康熙字典笔画
//*[@id="div_a1"]/table/tbody/tr/td[2]/p

b.民俗参考
//*[@id="div_a1"]/div[1]

 

正则表达式

//		OperationResponseHTTP.getWordResult(list,"http://tool.httpcn.com/","『([\\u4e00-\\u9fa5]{1})』.*(){1}(\\(([^)]*)\\)).*(汉字五行:.{1}).*(是否为常用字:是).*(姓名学:.{0,1})");
//		OperationResponseHTTP.getWordResult(list,"http://tool.httpcn.com/","『([\\u4e00-\\u9fa5]{1})』.*(){1}(\\(([^)]*)\\))");
		OperationResponseHTTP.getWordResult(list,"http://tool.httpcn.com/","『([\\u4e00-\\u9fa5]{1})』.*(){1}(\\(([^)]*)\\)).*(是否为常用字:.{1})");
*/
		//从本地文件中读取待处理的数据
		ReadResultFromLocal.getResultFromLocalFile("./result.txt");
//		OperationResponseHTTP.getWordResult(list,"http://tool.httpcn.com/","『([\\u4e00-\\u9fa5]{1})』.*(){1}(\\(([^)]*)\\))");

//		OperationResponseHTTP.getWordResult(list,"http://tool.httpcn.com/","汉字五行:.{1}");
//		OperationResponseHTTP.getBHSource(list,"http://tool.httpcn.com/","/Html/KangXi/\\d{1,}/\\w{3,}.shtml");
	}


 

OperationLocalFile

package test;

import java.util.ArrayList;
import java.util.Collections;

/** 
 * @author 苏宝伢 E-mail:[email protected] 
 * @version 创建时间: 2018年1月25日 下午10:25:10
 */
public class OperationLocalFile {

	public static String analyzeString(String[] content) {
		String joint = "";
		ArrayList list = new ArrayList<>();
		int arrayFirstElement = 0,arrayTwoElement = 1,arrayEndElement = 2;
		//String[] content = "託, 託:10;托:7; ,是否为常用字:否".split(",");
		for(int i=0;i list = new ArrayList<>();
		
		for(int i=0;i parms){
		int result = 0;
		for(int i=0;i

 

OperationResponseHTTP

package generatorName;

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;

/** 
 * @author 苏宝伢 E-mail:[email protected] 
 * @version 创建时间: 2018年1月18日 上午9:25:53
 */
public class OperationResponseHTTP {
	//按照某个规则(譬如:笔画,链接)来分段截取内容,并存入linkedHashMap中
		public static Map filterString(String sourceStr,String regex){
			int count = 1;
			int tempNum = 0;
			int firstNum = 1;
			int position = 0;
			LinkedHashMap linkMap = new LinkedHashMap<>();
			Matcher m = RegularExpressions.matcherMethod(sourceStr,regex);
			while(m.find()){
				position = sourceStr.indexOf(regex + count);
				if(count == firstNum){//第一次进来,只有起始位置
					tempNum = position;
				}else{//通过上一次的位置,加上这一次的位置,截取子字符串
					position = sourceStr.indexOf(regex + count);
					linkMap.put(count - 1, sourceStr.substring(tempNum,position));
					tempNum = position;
				}
				count ++;
			}
			//最后一次截取
			linkMap.put(count - 1, sourceStr.substring(tempNum));
			return linkMap;
		}
		
		//解析存在map中的相应内容
		public static String analysisMap(Map responeMap){
			for(Map.Entry entry:responeMap.entrySet()){
				System.out.println(entry.getValue());
			}
//			Iterator> iter = responeMap.entrySet().iterator();
//			while(iter.hasNext()){
//				Map.Entry entry = iter.next();
//				System.out.println("----------------"+entry.getKey() + entry.getValue());
//			}
			return "";
		}
		
	//通过
		public static String getHerfString(Map m,String sourceStr,String regex){
			m = new LinkedHashMap<>();
			
			return "";
		}
		
	//获取源码中的链接
		public static List getSourceRUL(String source,String regex){
			ArrayList list = new ArrayList<>();
			Matcher m = RegularExpressions.matcherMethod(source,regex);
			while(m.find()){
				list.add(m.group());
			}
			return list;
		}
		
		//获取某个部首包含所有汉字的源码
		public static List getBHOfUrlFromSource(List list,String urlHeader,String regex){
			ArrayList newList = new ArrayList<>();
			for(String strBHSource:list){
				String source = RequestHTTP.getResponseFromUrl(urlHeader + strBHSource);
				ArrayList tempList = (ArrayList)getSourceRUL(source,regex);
				for(String wenzi:tempList){
					newList.add(wenzi);
				}
			}
			return newList;
		}
		
		//获取某个文字的笔画和五行所属
		public static void getWordResult(List list,String urlHeader,String regex){
			Matcher m = null;
			String wordSour = "";
			System.out.println("write start!");
			for(String result:list){
				wordSour = RequestHTTP.getResponseFromUrl(urlHeader + result);
				m = RegularExpressions.matcherMethod(wordSour,regex);
				while(m.find()){
//					WriteResultToTxt.writeResult(m.group(1)+m.group(4)+m.group(5)+m.group(6)+m.group(7));
					WriteResultToTxt.writeResult(m.group(1)+"," + m.group(4) +","+ m.group(5));
				}
			}
			System.out.println("write end!");
		}
}

ReadResultFromLocal

package generatorName;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

/** 
 * @author 苏宝伢 E-mail:[email protected] 
 * @version 创建时间: 2018年1月25日 下午4:50:21
 */
public class ReadResultFromLocal {
	
	public static void getResultFromLocalFile(String filePath){
		
		BufferedReader br = null ;
		String tempStr = "";

		try{
			br = new BufferedReader(new FileReader(new File(filePath)));

			while((tempStr=br.readLine())!=null){
//				System.out.println(tempStr);
				System.out.println(OperationLocalFile.getMaxBHWord(tempStr.split(",")));
			}
		}catch(IOException fnf){
			System.out.println("没有该文件或目录");
			fnf.printStackTrace();
		}finally{
			try{
				br.close();
			}catch(IOException e){
				System.out.println("关闭以前关闭的流无效~!");
				e.printStackTrace();
			}
		}
	}

	public static Map getBHFromlocalFile(String filePath) {
		Map mapName = new LinkedHashMap<>();
		BufferedReader br = null;
		String tempStr = "";
		try {
			br = new BufferedReader(new FileReader(new File(filePath)));
			while ((tempStr = br.readLine()) != null) {
				String[] wordAndBH = tempStr.split(",");
				mapName.put(wordAndBH[0], wordAndBH[1]);
			}
		} catch (IOException fnf) {
			System.out.println("没有该文件或目录");
			fnf.printStackTrace();
		} finally {
			try {
				br.close();
			} catch (IOException e) {
				System.out.println("关闭以前关闭的流无效~!");
				e.printStackTrace();
			}
		}
		return mapName;
	}

}

RegularExpressions

package generatorName;

import java.util.regex.Matcher;
import java.util.regex.Pattern;


/** 
 * @author 苏宝伢 E-mail:[email protected] 
 * @version 创建时间: 2018年1月18日 上午10:29:10
 */
public class RegularExpressions {
	
	public static Matcher matcherMethod(String source,String regex){
		Pattern p = Pattern.compile(regex);
		return p.matcher(source);
	}

}

 

RequestHTTP

package generatorName;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

/** 
 * @author 苏宝伢 E-mail:[email protected] 
 * @version 创建时间: 2018年1月18日 上午9:23:30
 */
public class RequestHTTP {
	//通过url访问地址,然后接受服务器相应回来的内容,存入String中
		public static String getResponseFromUrl(String urlPath){
			String acept = "";
			URL openUrl = null;
			URLConnection conn = null;
			BufferedReader read = null;
			try {
				openUrl = new URL(urlPath);
				conn = openUrl.openConnection();
				read = new BufferedReader(new InputStreamReader(conn.getInputStream(),"utf-8"));
				String strTemp = "";
				while((strTemp=read.readLine())!=null){
//					acept += new String(strTemp.getBytes("utf-8"),"gb2312");
					acept += strTemp;
				}
			} catch (IOException e) {
				System.out.println("从服务器获取源文件失败");
				e.printStackTrace();
			} finally{
				if(read != null){
					try {
						read.close();
					} catch (IOException e) {
						System.out.println("读取源文件出异常~");
						e.printStackTrace();
					}
				}
			}
			return acept;
		}

}

 

TestGetInfo

package generatorName;

import java.util.List;

/** 
 * @author 苏宝伢 E-mail:[email protected] 
 * @version 创建时间: 2018年1月18日 上午9:46:54
 */
public class TestGetInfo {

	public static void main(String[] args) {
		SetProxy.setProperties();
		String allPPBS = "";
		List list = null;
/*		
		//偏旁部首查字,部首首页源码
		allPPBS = RequestHTTP.getResponseFromUrl("http://tool.httpcn.com/KangXi/BuShou.html");

		//所有部首的url
		list = OperationResponseHTTP.getSourceRUL(allPPBS, "/Html/KangXi/BuShou/.{3,6}.html");
		
		//通过遍历某一部首的所有汉字,获取所有汉字的URL
		list = OperationResponseHTTP.getBHOfUrlFromSource(list,"http://tool.httpcn.com/","/Html/KangXi/\\d{1,}/\\w{3,}.shtml");
		//把初步过滤的结果写到本地
//		OperationResponseHTTP.getWordResult(list,"http://tool.httpcn.com/","『([\\u4e00-\\u9fa5]{1})』.*(){1}(\\(([^)]*)\\)).*(汉字五行:.{1}).*(是否为常用字:是).*(姓名学:.{0,1})");
//		OperationResponseHTTP.getWordResult(list,"http://tool.httpcn.com/","『([\\u4e00-\\u9fa5]{1})』.*(){1}(\\(([^)]*)\\))");
		OperationResponseHTTP.getWordResult(list,"http://tool.httpcn.com/","『([\\u4e00-\\u9fa5]{1})』.*(){1}(\\(([^)]*)\\)).*(是否为常用字:.{1})");
*/
		//从本地文件中读取待处理的数据
		ReadResultFromLocal.getResultFromLocalFile("./result.txt");
//		OperationResponseHTTP.getWordResult(list,"http://tool.httpcn.com/","『([\\u4e00-\\u9fa5]{1})』.*(){1}(\\(([^)]*)\\))");

//		OperationResponseHTTP.getWordResult(list,"http://tool.httpcn.com/","汉字五行:.{1}");
//		OperationResponseHTTP.getBHSource(list,"http://tool.httpcn.com/","/Html/KangXi/\\d{1,}/\\w{3,}.shtml");
	}

}

 

TestRespone

package generatorName;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


/** 
 * @author 苏宝伢 E-mail:[email protected] 
 * @version 创建时间: 2018年1月18日 下午3:29:40
 */
public class TestRespone {

	public static void main(String[] args) {
		SetProxy.setProperties();
		String testPrint = "康熙字典:中,“中”康熙字典笔画,繁体笔画,汉字五行_HttpCN
首页 > 康熙字典 > 中Setzicenter_01();
康熙字典扫描版更多解释
◎ 民俗参考
汉字五行:火 吉凶寓意:吉 是否为常用字:是
姓名学:姓


◎ 字形结构
[ 首尾分解查字 ]:口丨(koushu)[ 汉字部件构造 ]:中
[ 笔顺编号 ]:2512
[ 笔顺读写 ]:竖折横竖


◎ 康熙字典解释
【子集上】【丨字部】 中; 康熙笔画:4; 页码:页79第03(点击查看原图)
〔古文〕【唐韻】陟弓切【集韻】【韻會】【正韻】陟隆切,音忠。【書·大禹謨】允執厥中。【周禮·地官·大司徒】以五禮防民僞,而敎之中。【左傳·成十三年】劉子曰:民受天地之中以生。 又【左傳·文元年】舉正於中,民則不惑。【註】舉中氣也。 又司中,星名。在太微垣。【周禮·春官·大宗伯】以槱燎祀司中司命飌師雨師。 又【前漢·律歷志】春爲陽中,萬物以生。秋爲隂中,萬物以成。 又中央,四方之中也。【書·召誥】王來紹上帝,自服于土中。【註】洛爲天地之中。【張衡·東京賦】宅中圓大。 又正也。【禮·儒行】儒有衣冠中。【周禮·秋官·司刺】以此三法者求民情,斷民中,施上服下服之罪。【註】斷民罪,使輕重得中也。 又心也。【史記·韓安國傳】深中寬厚。 又內也。【易·坤卦】黃裳元吉,文在中也。又【老子·道德經】多言數窮,不如守中。 又半也。【列子·力命篇】得亦中,亡亦中。【魏志·管輅傳】鼓一中。【註】猶言鼓一半也。 又成也。【禮·禮器】因名山升中于天。【註】中,猶成也。燔柴祭天,告以諸侯之成功也。 又滿也。【前漢·百官表】制中二千石。【註】謂滿二千石也。【索隱】漢制,九卿已上,秩一歲,滿二千石。 又穿也。【周禮·冬官考工記】中其莖。【註】謂穿之也。 又盛算器。【禮·投壺】主人奉矢,司射奉中。【註】士鹿中,大夫兕中,刻木如兕鹿而伏,背上立圓圈,以盛算也。 又【禮·深衣註】衣有表者,謂之中衣。與衷通。 又俚語。以不可爲不中。【蕭參希通錄】引左傳成公二年,無能爲役。杜預註:不中爲之役使。 又【禮·鄕飲酒義】冬之爲言中也。中者,藏也。 又姓。漢少府卿中京。又中行,中英,中梁,中壘,中野,皆複姓。 又【廣韻】【集韻】【韻會】陟仲切,音妕。矢至的曰中。【史記·周本紀】養由基去柳葉百步,射之,百發百中。 又著其中曰中。【莊子·達生篇】中身當心則爲病,猶醫書中風,中暑是也。 又要也。【周禮·春官】凡官府鄕州及都鄙之治中,受而藏之。【註】謂治職簿書之要也。 又應也。【禮·月令】律中大簇。【註】中猶應也。 又合也。【左傳·定元年】季孫曰:子家子亟言於我,未嘗不中吾志也。 又【類篇】【正韻】直衆切。與仲通。【禮·月令】中呂,卽仲呂, 又讀作得。【周禮·地官】師氏掌國中失之事。【註】故書中爲得。陸德明云:中,杜音得。 又【韻補】叶陟良切,音章。師古曰:古讀中爲章。【吳志·胡綜傳·黃龍大牙賦】四靈旣布,黃龍處中。周制日月,是曰太常。 又叶諸仍切,音征。【劉貢父·詩話】關中讀中爲。【詩·大雅】泉之竭兮,不云自中。叶上頻。【班固·高祖泗水亭】天期乗祚受爵漢中。叶下秦。古東韻與庚陽通。 俗讀中酒之中爲去聲。中與之中爲平聲。◎按《魏志·徐邈傳》:邈爲尚書郞,時禁酒。邈私飮沈醉,趙達問以曹事,曰中聖人。時謂酒淸爲聖人,濁者爲賢人。蘇軾詩:公特未知其趣耳,臣今時復一中之。則中酒之中,亦可讀平聲。《通鑑》:周宣王成中與之名,註:當也。杜詩:今朝漢社稷,新數中與年。則中與之中亦可讀去聲。
考證:〔【班固·東都賦】宅中圓大。〕 謹照原書改張衡東京賦。 〔【周禮·春官·司刺】以刺宥三法,求民情,斷民中。〕 謹照原文春官改秋官。以刺宥三法求民情,改以此三法者求民情。〔【易·坤卦】黃裳元吉,美在中也。〕 謹照原文美在中也改文在中也。 〔【左傳·定元年】季孫曰:子家亟言於我,未嘗不中吾志也。〕 謹照原文子家下增子字。 〔【周禮·天官】凡官府鄕州及都鄙之治中,受而藏之。〕 謹照原書天官改春官。

◎ 音韵参考
[ 上古音 ]:侵部端母,tiu?m
[ 广 韵 ]:陟弓切,上平1東,zhōng,通開三平東知
[ 平水韵 ]:上平一东·去声一送
[ 唐 音 ]:*djiùng,djiung
[ 国 语 ]:zhōng,zhòng
[ 粤 语 ]:zung1zung3


◎ 索引参考
[ 古文字诂林 ]:01册,第10部,丨部,2
[ 故训彙纂 ]:25|0103.4
[ 说文解字 ]:编号0231,第01卷上,丨部第2字
[ 康熙字典 ]:页79第03(点击查看原图)
[ 汉语字典 ]:卷1页0028第10
[   辞 海   ]:卷3页7402第


收藏本页】【打印】【关闭】【顶部
 是否为常用字:是
姓名学:姓

){1}(\\(([^)]*)\\)).*(汉字五行:.{1}).*(是否为常用字:是).*(姓名学:.{0,1}) // Pattern p = Pattern.compile("([\\u4e00-\\u9fa5]{1})』.*(){1}(\\(([^)]*)\\)).*(是否为常用字:是)"); Pattern p = Pattern.compile("『([\\u4e00-\\u9fa5]{1})』.*(){1}(\\(([^)]*)\\)).*(是否为常用字:.{1})"); Matcher m = p.matcher(testPrint); while(m.find()){ System.out.println(m.group(1)+m.group(4) + m.group(5)); } // ReadResultFromLocal.getResultFromLocalFile("./result.txt"); } public static void getLimitRecord(String filePath){ BufferedReader br = null; String tempStr = ""; int count = 0; int allLineOfFile = getSourceFileLineNo(filePath); try{ br = new BufferedReader(new FileReader(new File(filePath))); while((tempStr=br.readLine())!=null){ if((allLineOfFile - count++)<=10){ System.out.println(tempStr); } } }catch(IOException e){ System.out.println("没有该文件或目录"); e.printStackTrace(); }finally{ try{ br.close(); }catch(IOException e){ System.out.println("关闭以前关闭的流无效~!"); e.printStackTrace(); } } } public static int getSourceFileLineNo(String filePath){ BufferedReader br = null ; String tempStr = ""; int count = 0; try{ br = new BufferedReader(new FileReader(new File(filePath))); while((tempStr=br.readLine())!=null){ count ++; } }catch(IOException fnf){ System.out.println("没有该文件或目录"); fnf.printStackTrace(); }finally{ try{ br.close(); }catch(IOException e){ System.out.println("关闭以前关闭的流无效~!"); e.printStackTrace(); } } return count; } }

 

WriteResultToTxt

package generatorName;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

/** 
 * @author 苏宝伢 E-mail:[email protected] 
 * @version 创建时间: 2018年1月25日 下午1:47:19
 */
public class WriteResultToTxt {
	public static void writeResult(String textContent){
		String resultText = textContent;
		try{
			BufferedWriter bw = new BufferedWriter(new FileWriter(new File(".\\result.txt"),true));
			bw.write(resultText,0,resultText.length());
			bw.newLine();
			bw.close();
			
		}catch(IOException e){
			
		}
		
	}
	
	public static String getSystemTime(){
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:MM:SS");//设置日期格式
		String systemTime = df.format(new Date());// new Date()为获取当前系统时间
		return systemTime;
	}

}

 

你可能感兴趣的:(取名)

『中』
拼音:zhòng zhōng 注音:ㄓㄨㄥˋ ㄓㄨㄥ
部首:丨 部首笔画:1 总笔画:4
康熙字典笔画( 中:4; )