Java拼音排序,汉字排序会存在问题的。
示例如下:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.xiva.baseKnowledge;
import java.text.Collator;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
/**
*
* @author Xiva
*/
public class SortByPinY {
public enum Color {
RED, BLUE, GREEN, BLACK;
}
public static void main(String[] args) throws ParseException{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Collator cmp = Collator.getInstance(java.util.Locale.CHINA);
String[] arr = { "孙子兵法", "网站", "奇迹", "糖水", "参数", "香飘飘", "隐士", "障碍", "颐和园", "怡人"};
Arrays.sort(arr, cmp);
System.out.println(Arrays.toString(arr));
Date date = new Date();
String dateStr = date.toString();
System.out.println(dateStr);
String sdfDate = sdf.format(date);
System.out.println(sdfDate);
Date conDate = sdf2.parse(sdfDate);
System.out.println(conDate.toString());
List<Color> list = new ArrayList<Color>();
list.add(Color.RED);
list.add(Color.BLACK);
list.add(Color.GREEN);
list.add(Color.BLUE);
String arrayStr = ArraystoString(list.toArray());
System.out.println(arrayStr);
String[] array = arrayStr.split(",");
for(int i=0;i<array.length;i++){
}
System.out.println(array.length);
}
public static String ArraystoString(Object[] a) {
if (a == null)
return "null";
int iMax = a.length - 1;
if (iMax == -1)
return "";
StringBuilder b = new StringBuilder();
//b.append('[');
for (int i = 0; ; i++) {
b.append(String.valueOf(a[i]));
if (i == iMax)
//.append(']')
return b.toString();
b.append(", ");
}
}
}
其中输出结果为:
[参数, 奇迹, 孙子兵法, 糖水, 网站, 香飘飘, 颐和园, 隐士, 障碍, 怡人]
怡人明显应该在障碍前面才对。