📄 gfstring.java
字号:
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 + -