Java怎么按照汉字字典顺序给字符串排序
2个回答
展开全部
//按照中文第一个字母升序排列的实现
import java.text.Collator;
import java.util.Arrays;
import java.util.Comparator;
public class test {
/让磨拦**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Comparator<Object> com=Collator.getInstance(java.util.Locale.CHINA);
String[] newArray={"上海","天津","广州","杭州","辽宁","南京"坦胡,"武汉","北京","厦门","游悄内蒙"};
Arrays.sort(newArray,com);
for(String i:newArray){
System.out.print(i+" ");
}
}
}
import java.text.Collator;
import java.util.Arrays;
import java.util.Comparator;
public class test {
/让磨拦**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Comparator<Object> com=Collator.getInstance(java.util.Locale.CHINA);
String[] newArray={"上海","天津","广州","杭州","辽宁","南京"坦胡,"武汉","北京","厦门","游悄内蒙"};
Arrays.sort(newArray,com);
for(String i:newArray){
System.out.print(i+" ");
}
}
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
import java.util.Comparator;
import java.util.ArrayList;
import java.util.Collections;
public class Tester {
public static void main(String[] args) {
ArrayList list = new ArrayList();
list.add("东海湾");
list.add("傲来");
list.add("东海湾-岩洞");
list.add("傲来药店");
/*
* 运用Collections的sort()方法对其进行排序 sort()方法需要传 连个参数,一个是需要进行排序的Collection 另一个是一个Comparator
*/
Collections.sort(list, new SpellComparator());
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}
/**
* 汉字拼音排序比较器
*/
class SpellComparator implements Comparator {
public int compare(Object o1, Object o2) {
try {
// 取得比较对象的汉字编码,并将其码枝转换成字符串局碧
String s1 = new String(o1.toString().getBytes("GB2312"), "ISO-8859-1");
String s2 = new String(o2.toString().getBytes("GB2312"), "ISO-8859-1");
// 运用String类的桐模举 compareTo()方法对两对象进行比较
return s1.compareTo(s2);
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
}
这个应该可以
import java.util.ArrayList;
import java.util.Collections;
public class Tester {
public static void main(String[] args) {
ArrayList list = new ArrayList();
list.add("东海湾");
list.add("傲来");
list.add("东海湾-岩洞");
list.add("傲来药店");
/*
* 运用Collections的sort()方法对其进行排序 sort()方法需要传 连个参数,一个是需要进行排序的Collection 另一个是一个Comparator
*/
Collections.sort(list, new SpellComparator());
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}
/**
* 汉字拼音排序比较器
*/
class SpellComparator implements Comparator {
public int compare(Object o1, Object o2) {
try {
// 取得比较对象的汉字编码,并将其码枝转换成字符串局碧
String s1 = new String(o1.toString().getBytes("GB2312"), "ISO-8859-1");
String s2 = new String(o2.toString().getBytes("GB2312"), "ISO-8859-1");
// 运用String类的桐模举 compareTo()方法对两对象进行比较
return s1.compareTo(s2);
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
}
这个应该可以
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询