我查询一个表,让它按Province排序 Cursor cursor = db.query(DatabaseHelper.tableName_B3_1,
new String[]{"ID","Province","name"}
,null, null, null, null,"Province",null);
显示出的结果确实是Province名相同的会连续在一起,
但不是按拼音排序的,出现的先后顺序是“上海”、“云南”、“内蒙古”、“北京”、“吉林”……
我没搞明白这是按什么规律的排序,我记得Order by应该是按拼音的。请问怎样做能按拼音来排序。
new String[]{"ID","Province","name"}
,null, null, null, null,"Province",null);
显示出的结果确实是Province名相同的会连续在一起,
但不是按拼音排序的,出现的先后顺序是“上海”、“云南”、“内蒙古”、“北京”、“吉林”……
我没搞明白这是按什么规律的排序,我记得Order by应该是按拼音的。请问怎样做能按拼音来排序。
解决方案 »
- SurfaceView的显示问题: 不同的加入方式会影响其的显示吗
- 用BufferedOutputStream和FileOutputStream写入文件的区别
- android webservice SoapObject Object 类型转换
- Android面试时...
- 资源
- 关于Android使用HttpPos方式带参数访问Asp.net网页问题
- android从上往下应该学习哪些东西
- 大家看一下 我这么在Android 中使用byte是否有隐患
- 【真心求助】一个简单的安卓问题!
- 请问扫描二维码、条形码是否须要互联网环境?
- 在通话过程中能否处理自己的音频数据呀??
- 求一份Android可以导出VCard格式文件的源码。
Java中获取GBK编码汉字的拼音字头方法。(完整代码)
汉字转换成拼音代码如下:(首先要导入上面那个包)
package com.puyo.common;import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;/**
* 提供汉字->拼音的转换
* @author kech
*
*/
public class PinYin4J {
/**
* 将文字转换成拼音
* @param hanzhis
* @return
*/
public static String toPinYin(String hanzhis) {
CharSequence s = hanzhis;
char[] hanzhi = new char[s.length()];
for (int i = 0; i < s.length(); i++) {
hanzhi[i] = s.charAt(i);
} char[] t1 = hanzhi;
String[] t2 = new String[s.length()];
/** */
/**
* 设置输出格式
*/
net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat();
t3.setCaseType(HanyuPinyinCaseType.UPPERCASE);
t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
t3.setVCharType(HanyuPinyinVCharType.WITH_V); int t0 = t1.length;
String py = "";
try {
for (int i = 0; i < t0; i++) {
t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);
if(t2!=null)
if(t2.length>0)
py = py + t2[0].toString();
}
} catch (BadHanyuPinyinOutputFormatCombination e1) {
e1.printStackTrace();
} return py.trim();
} /**
* 提取每个汉字的首字母
*
* @param str
* @return String
*/
public static String getPinYinHeadChar(String str) {
String convert = "";
for (int j = 0; j < str.length(); j++) {
char word = str.charAt(j);
// 提取汉字的首字母
String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);
if (pinyinArray != null) {
convert += pinyinArray[0].charAt(0);
} else {
convert += word;
}
}
return convert;
}
public static String converterToFirstSpell(String chines) {
String pinyinName = "";
char[] nameChar = chines.toCharArray();
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
for (int i = 0; i < nameChar.length; i++) {
if (nameChar[i] > 128) {
try {
pinyinName += PinyinHelper.toHanyuPinyinStringArray(
nameChar[i], defaultFormat)[0].charAt(0);
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
} else {
pinyinName += nameChar[i];
}
}
return pinyinName;
}
public static String converterToSpell(String chines) {
String pinyinName = "";
char[] nameChar = chines.toCharArray();
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
for (int i = 0; i < nameChar.length; i++) {
if (nameChar[i] > 128) {
try {
pinyinName += PinyinHelper.toHanyuPinyinStringArray(
nameChar[i], defaultFormat)[0];
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
} else {
pinyinName += nameChar[i];
}
}
return pinyinName;
}}