关于安卓mysql数据库解决思路
关于安卓mysql数据库
SELECT c.cid,c.cityid,c.cityname,
ELT(INTERVAL(CONV(HEX(LEFT(CONVERT(c.cityname USING gbk),1)),16,10),
0xb0a1,0xb0c5,0xb2c1,0xb4ee,0xb6ea,0xb7a2,0xb8c1,0xb9fe,0xbbf7,
0xbfa6,0xc0ac,0xc2e8,0xc4c3,0xc5b6,0xc5be,0xc6da,0xc8bb,0xc8f6,
0xcbfa,0xcdda,0xcef4,0xd1b9,0xd4d1),
'A','B','C','D','E','F','G','H','J','K','L','M','N','O','P',
'Q','R','S','T','W','X','Y','Z')AS PY
FROM city c ORDER BY c.cid
例如我很好三个字,我现在只能拿到我字的首字母,拿不到很好汉字的首字母,该如何更改代码
拿到
------解决方案--------------------
你是不是想要得到汉字的拼音首字母,有一个专门的jar包的呀
引入这个jar包,写段代码就好了呀:
SELECT c.cid,c.cityid,c.cityname,
ELT(INTERVAL(CONV(HEX(LEFT(CONVERT(c.cityname USING gbk),1)),16,10),
0xb0a1,0xb0c5,0xb2c1,0xb4ee,0xb6ea,0xb7a2,0xb8c1,0xb9fe,0xbbf7,
0xbfa6,0xc0ac,0xc2e8,0xc4c3,0xc5b6,0xc5be,0xc6da,0xc8bb,0xc8f6,
0xcbfa,0xcdda,0xcef4,0xd1b9,0xd4d1),
'A','B','C','D','E','F','G','H','J','K','L','M','N','O','P',
'Q','R','S','T','W','X','Y','Z')AS PY
FROM city c ORDER BY c.cid
例如我很好三个字,我现在只能拿到我字的首字母,拿不到很好汉字的首字母,该如何更改代码
拿到
------解决方案--------------------
你是不是想要得到汉字的拼音首字母,有一个专门的jar包的呀
引入这个jar包,写段代码就好了呀:
/**
* 获得字符串中汉字的首拼音,如果不是汉字就原样返回, 如果有符号就去掉
* @param src
* @return String
* */
public static String getFirstPinyin(String src) {
return getFirstPy(src).replaceAll("[^a-z0-9]+", "");
}
/**
* 获得字符串中汉字的首拼音,如果不是汉字就原样返回, 保留符号
* @param src
* @return String
* */
public static String getFirstPy(String src) {
if (isBlank(src)) {return "";}
char[] t1 = null;
t1 = src.toCharArray();
String[] t2 = new String[t1.length];
HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat();
t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);
t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
t3.setVCharType(HanyuPinyinVCharType.WITH_V);
String t4 = "";
int t0 = t1.length;
try {
for (int i = 0; i < t0; i++) {
// 判断是否为汉字字符
if (Character.toString(t1[i]).matches("[\\u4E00-\\u9FA5]+")) {
t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);
t4 += t2[0].substring(0, 1);
} else {
t4 += Character.toString(t1[i]);
}
}
} catch (BadHanyuPinyinOutputFormatCombination e1) {
log.error("获得字符串中汉字的首拼音", e1);
}
return t4;
}
/**
* 获得字符串中汉字的全拼,如果不是汉字就原样返回
* @param src
* @return String
* */
public static String getFullPinyin(String src) {
if (isBlank(src)) {return "";}
char[] t1 = null;
t1 = src.toCharArray();
String[] t2 = new String[t1.length];
HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat();
t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);
t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
t3.setVCharType(HanyuPinyinVCharType.WITH_V);
String t4 = "";
int t0 = t1.length;
try {
for (int i = 0; i < t0; i++) {
// 判断是否为汉字字符
if (Character.toString(t1[i]).matches("[\\u4E00-\\u9FA5]+")) {
t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);
t4 += t2[0];
} else {
t4 += Character.toString(t1[i]);
}
}
} catch (BadHanyuPinyinOutputFormatCombination e1) {
log.error("获得字符串中汉字的全拼", e1);
}
return t4.replaceAll("[^a-z0-9]+", "");
}