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

📄 gfstring.java

📁 基于java语言的分词系统
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
			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);
			bopomofo = "";
			String[] atoms = atomSplit(cstr);
			for (String atom : atoms) {
				if (isAllChinese(atom)) {
					byte[] b = atom.getBytes();
					int id = (256 + b[0]) * 256 + (256 + b[1]) - 256 * 256;

					int id1 = -20319;
					int id2 = 0;
					String last = null;
					Iterator itr = bopoMap.keySet().iterator();
					while (itr.hasNext()) {
						String py = (String) itr.next();
						id2 = bopoMap.get(py);
						if (id >= id1 && id < id2) {
							bopomofo += last == null ? py : last;
							break;
						} else {
							last = py;
							id1 = id2;
						}
					}

				} else
					bopomofo += atom;
			}

			bopomofo = bopomofo.toUpperCase();

		}

		return bopomofo;
	}

	/**
	 * 按字典顺序对两个字符串进行比较
	 * 
	 * @param s1
	 * @param s2
	 * @return
	 */
	public static int compareTo(String s1, String s2) {
		if (s1 == null && s2 == null)
			return 0;
		else if (s1 != null && s2 == null)
			return 1;
		else if (s1 == null && s2 != null)
			return -1;
		else {
			int len = Math.min(s1.length(), s2.length());
			s1 += " ";
			s2 += " ";
			for (int i = 0; i < len; i++) {
				String id1 = s1.substring(i, i + 1);
				String id2 = s2.substring(i, i + 1);
				int rs = getID(id1) - getID(id2);

				if (rs != 0)
					return rs;
			}

			if (s1.length() > s2.length())
				return 1;
			else if (s1.length() < s2.length())
				return -1;
			else
				return 0;
		}

	}

	/**
	 * 根据ID号得到对应的GB汉字
	 * 
	 * @param id
	 *            0--6767
	 * @return
	 */
	public static String getGB(int id) {
		String result = null;

		if (id >= 0 && id < 6768) {
			byte[] b = new byte[2];
			b[0] = (byte) ((id) / 94 + 176);
			b[1] = (byte) ((id) % 94 + 161);
			try {
				result = new String(b, "GBK");
			} catch (UnsupportedEncodingException e) {
				e.printStackTrace();
			}
		}
		return result;
	}

	public static int getGBID(String s) {
		int result = -1;

		if (s != null && s.length() == 1 && isAllChinese(s)) {
			byte[] b = s.getBytes();
			int high = b[0] + 256;
			int low = b[1] + 256;

			return (high - 176) * 94 + (low - 161);
		}
		return result;
	}

	public static int getID(String s) {
		int result = -1;

		if (s != null && s.length() == 1) {
			byte[] b = s.getBytes();
			if (b.length == 2) {
				int high = b[0] + 256;
				int low = b[1] + 256;

				return high * 256 + low;
			} else
				return b[0];
		}
		return result;
	}

	 

	public static String getTelcode(String telno) {
		String head = null;
		if (isTelNo(telno) && telno.length() > 7) {
			int len = telno.length();
			switch (len) {
			case 10:
				head = telno.substring(0, 3);
				break;
			case 11:
				if (telno.indexOf("01") == 0 || telno.indexOf("02") == 0)
					head = telno.substring(0, 3);
				else
					head = telno.substring(0, 4);
				break;
			case 12:
				if (telno.indexOf("098") == 0 || telno.indexOf("094") == 0 && telno.indexOf("0943") == -1 || telno.indexOf("092") == 0
						|| telno.indexOf("086") == 0 || telno.indexOf("084") == 0 || telno.indexOf("0827") == 0 || telno.indexOf("0829") == 0
						|| telno.indexOf("0822") == 0 || telno.indexOf("0824") == 0 || telno.indexOf("080") == 0 || telno.indexOf("07437") == 0
						|| telno.indexOf("0483") == 0 || telno.indexOf("0788") == 0)
					head = telno.substring(0, 5);
				else
					head = telno.substring(0, 4);
				break;
			}
		}
		return head;
	}

	/**
	 * 得到该词性对应的词
	 * 
	 * @param src
	 *            源字符串
	 * @param indexPos
	 *            词性标记的位置
	 */
	public static String getPosWord(String src, int indexPos) {
		String result = null;

		if (src != null && indexPos > 0 && indexPos < src.length() - 1) {
			String temp = src.substring(0, indexPos + 1);
			String[] ss = temp.split(" ");
			for (int i = ss.length - 1; i >= 0; i--) {
				int index = ss[i].indexOf("/");
				if (index == -1)
					break;
				else if (index > 0) {
					result = ss[i].substring(0, index);
					break;
				}
			}
		}

		return result;
	}
 

	/**
	 * 取得字符串中第一次出现的整数
	 * 
	 * @param str
	 * @return
	 */
	public static String getFirstInt(String str) {
		String result = null;

		if (str != null) {
			String temp = "";
			String[] atoms = atomSplit(str);
			for (int i = 0; i < atoms.length; i++) {
				if (isNumeric(atoms[i]))
					temp += atoms[i];
				if (i + 1 < atoms.length && !isNumeric(atoms[i + 1]))
					break;
			}

			if (temp.length() > 0)
				result = temp;

		}

		return result;
	}

	/**
	 * 字符串当中是否含有无法显示的乱码
	 * 
	 * GBK 亦采用双字节表示,总体编码范围为 8140-FEFE,首字节在 81-FE 之间,尾字节在 40-FE 之间,剔除 xx7F 一条线。总计
	 * 23940 个码位,共收入 21886 个汉字和图形符号,其中汉字(包括部首和构件)21003 个,图形符号 883 个。
	 * 
	 * @param msg
	 * @return
	 */
	public static boolean hasDisorderChar(String msg) {
		if (msg != null) {
			String[] atoms = atomSplit(msg);
			for (int i = 0; i < atoms.length; i++) {
				byte[] bs = atoms[i].getBytes();
				if (bs.length == 1) {
					if (bs[0] < 32 || bs[0] > 126)
						return true;
				} else if (bs.length == 2) {
					if (GFCommon.getUnsigned(bs[0]) < 0x81 || GFCommon.getUnsigned(bs[0]) > 0xFE || GFCommon.getUnsigned(bs[1]) < 40
							|| GFCommon.getUnsigned(bs[1]) > 0xFE)
						return true;
				}

			}
		}

		return false;
	}

	/**
	 * 格式化时间成时分秒的形式
	 * 
	 * @param millisTime
	 *            毫秒数
	 * @return
	 */
	public static String formatTime(long millisTime) {
		StringBuffer sb = new StringBuffer();
		millisTime = millisTime / 1000;
		sb.append(millisTime / 3600);
		sb.append("小时");
		sb.append((millisTime % 3600) / 60);
		sb.append("分钟");
		sb.append((millisTime % 3600) % 60);
		sb.append("秒");
		return sb.toString();
	}
	public static ArrayList<String> readTxtFile2(String fileName) throws IOException {
		ArrayList<String> result = null;
		FileInputStream fin = null;
		InputStreamReader in = null;
		BufferedReader br = null;
		File file = null;
		String value = null;

		if (fileName != null) {
			file = new File(fileName);
			if (file.exists()) {
				result = new ArrayList<String>();
				try {
					fin = new FileInputStream(file);
					in = new InputStreamReader(fin);
					br = new BufferedReader(in);
					while ((value = br.readLine()) != null) {
						result.add(value);
					}
				} catch (IOException e) {
					throw new IOException();
				}
			}
		}
		return result;
	}
}

⌨️ 快捷键说明

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