⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gfstring.java

📁 基于词典的分词工具,用与对文本文件的分词
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
/*
 * Created on 2004-5-31
 *
 * To change the template for this generated file go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */
package org.ictclas4j.utility;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;


/**
 * 和字符串相关的常用操作
 * 
 * @author SINBOY
 * @version V1.1
 */
public class GFString {
	private static final HashMap<String, String> map_hex2bin = new HashMap<String, String>(16); 
	{
		map_hex2bin.put("0", "0000");
		map_hex2bin.put("1", "0001");
		map_hex2bin.put("2", "0010");
		map_hex2bin.put("3", "0011");
		map_hex2bin.put("4", "0100");
		map_hex2bin.put("5", "0101");
		map_hex2bin.put("6", "0110");
		map_hex2bin.put("7", "0111");
		map_hex2bin.put("8", "1000");
		map_hex2bin.put("9", "1001");
		map_hex2bin.put("A", "1010");
		map_hex2bin.put("B", "1011");
		map_hex2bin.put("C", "1100");
		map_hex2bin.put("D", "1101");
		map_hex2bin.put("E", "1110");
		map_hex2bin.put("F", "1111");		
	}
	
	public final static HashMap<String, String> map_bin2hex = new HashMap<String, String>(16);
	{
		map_bin2hex.put("0000", "0");
		map_bin2hex.put("0001", "1");
		map_bin2hex.put("0010", "2");
		map_bin2hex.put("0011", "3");
		map_bin2hex.put("0100", "4");
		map_bin2hex.put("0101", "5");
		map_bin2hex.put("0110", "6");
		map_bin2hex.put("0111", "7");
		map_bin2hex.put("1000", "8");
		map_bin2hex.put("1001", "9");
		map_bin2hex.put("1010", "A");
		map_bin2hex.put("1011", "B");
		map_bin2hex.put("1100", "C");
		map_bin2hex.put("1101", "D");
		map_bin2hex.put("1110", "E");
		map_bin2hex.put("1111", "F");
	}

	private final static LinkedHashMap<String, Integer> bopoMap = new LinkedHashMap<String, Integer>();
	{
		bopoMap.put("a", 1);	
		bopoMap.put("a", -20319);
		bopoMap.put("ai", -20317);
		bopoMap.put("an", -20304);
		bopoMap.put("ang", -20295);
		bopoMap.put("ao", -20292);
		bopoMap.put("ba", -20283);
		bopoMap.put("bai", -20265);
		bopoMap.put("ban", -20257);
		bopoMap.put("bang", -20242);
		bopoMap.put("bao", -20230);
		bopoMap.put("bei", -20051);
		bopoMap.put("ben", -20036);
		bopoMap.put("beng", -20032);
		bopoMap.put("bi", -20026);
		bopoMap.put("bian", -20002);
		bopoMap.put("biao", -19990);
		bopoMap.put("bie", -19986);
		bopoMap.put("bin", -19982);
		bopoMap.put("bing", -19976);
		bopoMap.put("bo", -19805);
		bopoMap.put("bu", -19784);
		bopoMap.put("ca", -19775);
		bopoMap.put("cai", -19774);
		bopoMap.put("can", -19763);
		bopoMap.put("cang", -19756);
		bopoMap.put("cao", -19751);
		bopoMap.put("ce", -19746);
		bopoMap.put("ceng", -19741);
		bopoMap.put("cha", -19739);
		bopoMap.put("chai", -19728);
		bopoMap.put("chan", -19725);
		bopoMap.put("chang", -19715);
		bopoMap.put("chao", -19540);
		bopoMap.put("che", -19531);
		bopoMap.put("chen", -19525);
		bopoMap.put("cheng", -19515);
		bopoMap.put("chi", -19500);
		bopoMap.put("chong", -19484);
		bopoMap.put("chou", -19479);
		bopoMap.put("chu", -19467);
		bopoMap.put("chuai", -19289);
		bopoMap.put("chuan", -19288);
		bopoMap.put("chuang", -19281);
		bopoMap.put("chui", -19275);
		bopoMap.put("chun", -19270);
		bopoMap.put("chuo", -19263);
		bopoMap.put("ci", -19261);
		bopoMap.put("cong", -19249);
		bopoMap.put("cou", -19243);
		bopoMap.put("cu", -19242);
		bopoMap.put("cuan", -19238);
		bopoMap.put("cui", -19235);
		bopoMap.put("cun", -19227);
		bopoMap.put("cuo", -19224);
		bopoMap.put("da", -19218);
		bopoMap.put("dai", -19212);
		bopoMap.put("dan", -19038);
		bopoMap.put("dang", -19023);
		bopoMap.put("dao", -19018);
		bopoMap.put("de", -19006);
		bopoMap.put("deng", -19003);
		bopoMap.put("di", -18996);
		bopoMap.put("dian", -18977);
		bopoMap.put("diao", -18961);
		bopoMap.put("die", -18952);
		bopoMap.put("ding", -18783);
		bopoMap.put("diu", -18774);
		bopoMap.put("dong", -18773);
		bopoMap.put("dou", -18763);
		bopoMap.put("du", -18756);
		bopoMap.put("duan", -18741);
		bopoMap.put("dui", -18735);
		bopoMap.put("dun", -18731);
		bopoMap.put("duo", -18722);
		bopoMap.put("e", -18710);
		bopoMap.put("en", -18697);
		bopoMap.put("er", -18696);
		bopoMap.put("fa", -18526);
		bopoMap.put("fan", -18518);
		bopoMap.put("fang", -18501);
		bopoMap.put("fei", -18490);
		bopoMap.put("fen", -18478);
		bopoMap.put("feng", -18463);
		bopoMap.put("fo", -18448);
		bopoMap.put("fou", -18447);
		bopoMap.put("fu", -18446);
		bopoMap.put("ga", -18239);
		bopoMap.put("gai", -18237);
		bopoMap.put("gan", -18231);
		bopoMap.put("gang", -18220);
		bopoMap.put("gao", -18211);
		bopoMap.put("ge", -18201);
		bopoMap.put("gei", -18184);
		bopoMap.put("gen", -18183);
		bopoMap.put("geng", -18181);
		bopoMap.put("gong", -18012);
		bopoMap.put("gou", -17997);
		bopoMap.put("gu", -17988);
		bopoMap.put("gua", -17970);
		bopoMap.put("guai", -17964);
		bopoMap.put("guan", -17961);
		bopoMap.put("guang", -17950);
		bopoMap.put("gui", -17947);
		bopoMap.put("gun", -17931);
		bopoMap.put("guo", -17928);
		bopoMap.put("ha", -17922);
		bopoMap.put("hai", -17759);
		bopoMap.put("han", -17752);
		bopoMap.put("hang", -17733);
		bopoMap.put("hao", -17730);
		bopoMap.put("he", -17721);
		bopoMap.put("hei", -17703);
		bopoMap.put("hen", -17701);
		bopoMap.put("heng", -17697);
		bopoMap.put("hong", -17692);
		bopoMap.put("hou", -17683);
		bopoMap.put("hu", -17676);
		bopoMap.put("hua", -17496);
		bopoMap.put("huai", -17487);
		bopoMap.put("huan", -17482);
		bopoMap.put("huang", -17468);
		bopoMap.put("hui", -17454);
		bopoMap.put("hun", -17433);
		bopoMap.put("huo", -17427);
		bopoMap.put("ji", -17417);
		bopoMap.put("jia", -17202);
		bopoMap.put("jian", -17185);
		bopoMap.put("jiang", -16983);
		bopoMap.put("jiao", -16970);
		bopoMap.put("jie", -16942);
		bopoMap.put("jin", -16915);
		bopoMap.put("jing", -16733);
		bopoMap.put("jiong", -16708);
		bopoMap.put("jiu", -16706);
		bopoMap.put("ju", -16689);
		bopoMap.put("juan", -16664);
		bopoMap.put("jue", -16657);
		bopoMap.put("jun", -16647);
		bopoMap.put("ka", -16474);
		bopoMap.put("kai", -16470);
		bopoMap.put("kan", -16465);
		bopoMap.put("kang", -16459);
		bopoMap.put("kao", -16452);
		bopoMap.put("ke", -16448);
		bopoMap.put("ken", -16433);
		bopoMap.put("keng", -16429);
		bopoMap.put("kong", -16427);
		bopoMap.put("kou", -16423);
		bopoMap.put("ku", -16419);
		bopoMap.put("kua", -16412);
		bopoMap.put("kuai", -16407);
		bopoMap.put("kuan", -16403);
		bopoMap.put("kuang", -16401);
		bopoMap.put("kui", -16393);
		bopoMap.put("kun", -16220);
		bopoMap.put("kuo", -16216);
		bopoMap.put("la", -16212);
		bopoMap.put("lai", -16205);
		bopoMap.put("lan", -16202);
		bopoMap.put("lang", -16187);
		bopoMap.put("lao", -16180);
		bopoMap.put("le", -16171);
		bopoMap.put("lei", -16169);
		bopoMap.put("leng", -16158);
		bopoMap.put("li", -16155);
		bopoMap.put("lia", -15959);
		bopoMap.put("lian", -15958);
		bopoMap.put("liang", -15944);
		bopoMap.put("liao", -15933);
		bopoMap.put("lie", -15920);
		bopoMap.put("lin", -15915);
		bopoMap.put("ling", -15903);
		bopoMap.put("liu", -15889);
		bopoMap.put("long", -15878);
		bopoMap.put("lou", -15707);
		bopoMap.put("lu", -15701);
		bopoMap.put("lv", -15681);
		bopoMap.put("luan", -15667);
		bopoMap.put("lue", -15661);
		bopoMap.put("lun", -15659);
		bopoMap.put("luo", -15652);
		bopoMap.put("ma", -15640);
		bopoMap.put("mai", -15631);
		bopoMap.put("man", -15625);
		bopoMap.put("mang", -15454);
		bopoMap.put("mao", -15448);
		bopoMap.put("me", -15436);
		bopoMap.put("mei", -15435);
		bopoMap.put("men", -15419);
		bopoMap.put("meng", -15416);
		bopoMap.put("mi", -15408);
		bopoMap.put("mian", -15394);
		bopoMap.put("miao", -15385);
		bopoMap.put("mie", -15377);
		bopoMap.put("min", -15375);
		bopoMap.put("ming", -15369);
		bopoMap.put("miu", -15363);
		bopoMap.put("mo", -15362);
		bopoMap.put("mou", -15183);
		bopoMap.put("mu", -15180);
		bopoMap.put("na", -15165);
		bopoMap.put("nai", -15158);
		bopoMap.put("nan", -15153);
		bopoMap.put("nang", -15150);
		bopoMap.put("nao", -15149);
		bopoMap.put("ne", -15144);
		bopoMap.put("nei", -15143);
		bopoMap.put("nen", -15141);
		bopoMap.put("neng", -15140);
		bopoMap.put("ni", -15139);
		bopoMap.put("nian", -15128);
		bopoMap.put("niang", -15121);
		bopoMap.put("niao", -15119);
		bopoMap.put("nie", -15117);
		bopoMap.put("nin", -15110);
		bopoMap.put("ning", -15109);
		bopoMap.put("niu", -14941);
		bopoMap.put("nong", -14937);
		bopoMap.put("nu", -14933);
		bopoMap.put("nv", -14930);
		bopoMap.put("nuan", -14929);
		bopoMap.put("nue", -14928);
		bopoMap.put("nuo", -14926);
		bopoMap.put("o", -14922);
		bopoMap.put("ou", -14921);
		bopoMap.put("pa", -14914);
		bopoMap.put("pai", -14908);
		bopoMap.put("pan", -14902);
		bopoMap.put("pang", -14894);
		bopoMap.put("pao", -14889);
		bopoMap.put("pei", -14882);
		bopoMap.put("pen", -14873);
		bopoMap.put("peng", -14871);
		bopoMap.put("pi", -14857);
		bopoMap.put("pian", -14678);
		bopoMap.put("piao", -14674);
		bopoMap.put("pie", -14670);
		bopoMap.put("pin", -14668);
		bopoMap.put("ping", -14663);
		bopoMap.put("po", -14654);
		bopoMap.put("pu", -14645);
		bopoMap.put("qi", -14630);
		bopoMap.put("qia", -14594);
		bopoMap.put("qian", -14429);
		bopoMap.put("qiang", -14407);
		bopoMap.put("qiao", -14399);
		bopoMap.put("qie", -14384);
		bopoMap.put("qin", -14379);
		bopoMap.put("qing", -14368);
		bopoMap.put("qiong", -14355);
		bopoMap.put("qiu", -14353);
		bopoMap.put("qu", -14345);
		bopoMap.put("quan", -14170);
		bopoMap.put("que", -14159);
		bopoMap.put("qun", -14151);
		bopoMap.put("ran", -14149);
		bopoMap.put("rang", -14145);
		bopoMap.put("rao", -14140);
		bopoMap.put("re", -14137);
		bopoMap.put("ren", -14135);
		bopoMap.put("reng", -14125);
		bopoMap.put("ri", -14123);
		bopoMap.put("rong", -14122);
		bopoMap.put("rou", -14112);
		bopoMap.put("ru", -14109);
		bopoMap.put("ruan", -14099);
		bopoMap.put("rui", -14097);
		bopoMap.put("run", -14094);
		bopoMap.put("ruo", -14092);
		bopoMap.put("sa", -14090);
		bopoMap.put("sai", -14087);
		bopoMap.put("san", -14083);
		bopoMap.put("sang", -13917);
		bopoMap.put("sao", -13914);
		bopoMap.put("se", -13910);
		bopoMap.put("sen", -13907);
		bopoMap.put("seng", -13906);
		bopoMap.put("sha", -13905);
		bopoMap.put("shai", -13896);
		bopoMap.put("shan", -13894);
		bopoMap.put("shang", -13878);
		bopoMap.put("shao", -13870);
		bopoMap.put("she", -13859);
		bopoMap.put("shen", -13847);
		bopoMap.put("sheng", -13831);
		bopoMap.put("shi", -13658);
		bopoMap.put("shou", -13611);
		bopoMap.put("shu", -13601);
		bopoMap.put("shua", -13406);
		bopoMap.put("shuai", -13404);
		bopoMap.put("shuan", -13400);
		bopoMap.put("shuang", -13398);
		bopoMap.put("shui", -13395);
		bopoMap.put("shun", -13391);
		bopoMap.put("shuo", -13387);
		bopoMap.put("si", -13383);
		bopoMap.put("song", -13367);
		bopoMap.put("sou", -13359);
		bopoMap.put("su", -13356);
		bopoMap.put("suan", -13343);
		bopoMap.put("sui", -13340);
		bopoMap.put("sun", -13329);
		bopoMap.put("suo", -13326);
		bopoMap.put("ta", -13318);
		bopoMap.put("tai", -13147);
		bopoMap.put("tan", -13138);
		bopoMap.put("tang", -13120);
		bopoMap.put("tao", -13107);
		bopoMap.put("te", -13096);
		bopoMap.put("teng", -13095);
		bopoMap.put("ti", -13091);
		bopoMap.put("tian", -13076);
		bopoMap.put("tiao", -13068);
		bopoMap.put("tie", -13063);
		bopoMap.put("ting", -13060);
		bopoMap.put("tong", -12888);
		bopoMap.put("tou", -12875);
		bopoMap.put("tu", -12871);
		bopoMap.put("tuan", -12860);
		bopoMap.put("tui", -12858);
		bopoMap.put("tun", -12852);
		bopoMap.put("tuo", -12849);
		bopoMap.put("wa", -12838);
		bopoMap.put("wai", -12831);
		bopoMap.put("wan", -12829);
		bopoMap.put("wang", -12812);
		bopoMap.put("wei", -12802);
		bopoMap.put("wen", -12607);
		bopoMap.put("weng", -12597);
		bopoMap.put("wo", -12594);
		bopoMap.put("wu", -12585);
		bopoMap.put("xi", -12556);
		bopoMap.put("xia", -12359);
		bopoMap.put("xian", -12346);
		bopoMap.put("xiang", -12320);
		bopoMap.put("xiao", -12300);
		bopoMap.put("xie", -12120);
		bopoMap.put("xin", -12099);
		bopoMap.put("xing", -12089);
		bopoMap.put("xiong", -12074);
		bopoMap.put("xiu", -12067);
		bopoMap.put("xu", -12058);
		bopoMap.put("xuan", -12039);
		bopoMap.put("xue", -11867);
		bopoMap.put("xun", -11861);
		bopoMap.put("ya", -11847);
		bopoMap.put("yan", -11831);
		bopoMap.put("yang", -11798);
		bopoMap.put("yao", -11781);
		bopoMap.put("ye", -11604);
		bopoMap.put("yi", -11589);
		bopoMap.put("yin", -11536);
		bopoMap.put("ying", -11358);
		bopoMap.put("yo", -11340);
		bopoMap.put("yong", -11339);
		bopoMap.put("you", -11324);
		bopoMap.put("yu", -11303);
		bopoMap.put("yuan", -11097);
		bopoMap.put("yue", -11077);
		bopoMap.put("yun", -11067);
		bopoMap.put("za", -11055);
		bopoMap.put("zai", -11052);
		bopoMap.put("zan", -11045);
		bopoMap.put("zang", -11041);
		bopoMap.put("zao", -11038);
		bopoMap.put("ze", -11024);
		bopoMap.put("zei", -11020);
		bopoMap.put("zen", -11019);
		bopoMap.put("zeng", -11018);
		bopoMap.put("zha", -11014);
		bopoMap.put("zhai", -10838);
		bopoMap.put("zhan", -10832);
		bopoMap.put("zhang", -10815);
		bopoMap.put("zhao", -10800);
		bopoMap.put("zhe", -10790);
		bopoMap.put("zhen", -10780);
		bopoMap.put("zheng", -10764);
		bopoMap.put("zhi", -10587);
		bopoMap.put("zhong", -10544);
		bopoMap.put("zhou", -10533);
		bopoMap.put("zhu", -10519);
		bopoMap.put("zhua", -10331);
		bopoMap.put("zhuai", -10329);
		bopoMap.put("zhuan", -10328);
		bopoMap.put("zhuang", -10322);
		bopoMap.put("zhui", -10315);
		bopoMap.put("zhun", -10309);
		bopoMap.put("zhuo", -10307);
		bopoMap.put("zi", -10296);
		bopoMap.put("zong", -10281);
		bopoMap.put("zou", -10274);
		bopoMap.put("zu", -10270);
		bopoMap.put("zuan", -10262);
		bopoMap.put("zui", -10260);
		bopoMap.put("zun", -10256);
		bopoMap.put("zuo", -10254);
		bopoMap.put("", -10246);
	}
	
	
	/**
	 * 得到一个十六进制字符的二进制字符串表示形式
	 * 
	 * @param hex
	 *            十六进制字符
	 * @return 二进制字符串
	 */
	public static String hex2bin(String hex) {
		if (hex != null) {
			return (String) map_hex2bin.get(hex.toUpperCase());
		} else
			return null;
	}

	public static String hexstr2bin(String hex) {
		String result = null;

		if (hex != null) {
			if (isHex(hex) == false)
				return null;

			hex += "0";
			result = "";
			for (int i = 0; i < hex.length() - 1; i++) {
				result += hex2bin(hex.substring(i, i + 1));
			}

		}
		return result;
	}

	public static boolean isHex(String hex) {
		if (hex != null) {
			hex = hex.toUpperCase();
			for (int i = 0; i < hex.length(); i++) {
				int value = hex.charAt(i);
				if (value < 48 || (value > 57 && value < 65) || value > 70)
					return false;
			}
		} else
			return false;

		return true;
	}

	/**
	 * 把字符串转化成指定长度的数组
	 * 
	 * @param str
	 *            要转换的字符串
	 * @param len
	 *            指定的转换后的字节类型的数据的总长度
	 * @param end
	 *            字节数据的最后一个字节所填的数据的值
	 * @return 字节数组
	 */
	public static byte[] getBytes(String str, int start, int len) {
		byte[] b = null;

		if (str != null) {
			byte[] b1 = str.getBytes();
			b = GFCommon.bytesCopy(b1, start, len);

		}

		return b;
	}

	/**
	 * 返回按指定编码方式编码的字符串
	 * 
	 * @param bArray
	 *            字节数组
	 * @param charsetName
	 *            字符集
	 * @return
	 */
	public static String getEncodedString(byte[] bArray, String charsetName) {
		String ch = null;
		if (charsetName != null) {

			try {
				ch = new String(bArray, charsetName);
			} catch (UnsupportedEncodingException e) {
				e.printStackTrace();
			}
		}

		return ch;

	}

	/**
	 * 把表示一个数的十六进制的字符串转化成十进制的数
	 * 
	 * @param hex
	 *            十六进制字符串
	 * @return 十进制的整数
	 */
	public static long hexstr2long(String hex) {
		long value = 0;

		if (hex != null) {
			hex = hex.toUpperCase();
			if (hex.length() > 16)
				hex = hex.substring(0, 16);

			if (isHex(hex)) {

				byte[] b = hexstr2bytes(hex);
				value = GFCommon.bytes2long(b);
			}
		}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -