不是特别理解你想问什么,我暂且假设你想问的是如何排序然后输出,若我理解有误你可以再问。关于字符串的排序首先我们应该规定怎样比较他们的大小,那么我假定你想要的是字母靠前的更小,靠后的更大。那么你可以使用String类的compare方法,然后使用STL的排序算法排序就可以了。输出循环输出即可。
创新互联公司是一家专注于成都做网站、网站设计、外贸营销网站建设与策划设计,旺苍网站建设哪家好?创新互联公司做网站,专注于网站建设10余年,网设计领域的专业建站公司;建站业务涵盖:旺苍等地区。旺苍做网站价格咨询:18980820575
import java.util.*;
import java.text.*;
public class SortByChinese {
//测试
public static void main(String[] args) {
String[] a1 = {"保定","何子安","于小云","刘帝","刘何保定子安","刘","刘娜","家强","刘博"};
getSortOfChinese(a1);
for (int i = 0; i a1.length; i++) {
System.out.println(a1[i]);
}
}
/**
*
* @param a String[]
* @return String[]
*/
public static String[] getSortOfChinese(String[] a) {
// Collator 类是用来执行区分语言环境这里使用CHINA
Comparator cmp = Collator.getInstance(java.util.Locale.CHINA);
// JDKz自带对数组进行排序。
Arrays.sort(a, cmp);
return a;
}
}
自己测试哦!
/**
* 依照字母顺序排列
* @param list
* @return
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
private ArrayList listByName(List list) {
// TODO Auto-generated method stub
ArrayList flagList = new ArrayList();
String[] strList = new String[list.size()];
for(int j=0;jlist.size();j++){
strList[j] = (String) list.get(j);
}
Comparator comp = Collator.getInstance(java.util.Locale.CHINESE);
Arrays.sort(strList,comp);
for(int i=0;istrList.length;i++){
flagList.add(strList[i]);
}
return flagList;
}
上面是我写的方法,可以正常运行!!!
你可以把你的全部代码贴出来,我帮你看看!!!
只这一段,并不能准确定位你的空指针错误在哪里!!!
具体代码就不给你写了,思路如下
假设你有一个学生的类student,包涵年龄age,学号,分数count等属性。
把此类实现
comparable接口,接口有一个方法compareto
此方法返回一个整数
-1代表小于
1代表大于
0代表等于
比如:
public
int
compareto(student
student){
if(this.count
student.count)
return
1;
else
return
0;
}
然后你拿到学生类的集合后,比如一个list
students
那么就可以用collections.sort(students)对这个list进行排序,然后按顺序遍历输出就可以了。