查看: 72|回复: 0

扣丁学堂Java培训之Java编程实现中英混合字符串数组按首字母排序的方法

发表于 2018-6-7 13:14:12

本篇文章扣丁学堂Java培训小编主要是和大家分享java编程实现中英混合字符串数组按首字母排序的方法,文章中会有代码列出,对Java感兴趣想要学习的小伙伴下面和小编一起来看一下吧。


在Java中对于字符串数组的排序,我们可以使用Arrays.sort(String[])方法很便捷的进行排序。例如:
String[] arrays = new String[] { "gyu", "sdf", "zf", "大同", "收到", "地方", "三等分", "的人", "反对高铁", "泛代数", "上的投入", "和国家" };
/*设置语言环境*/
Comparator<Object> com = Collator.getInstance(java.util.Locale.CHINA);
Arrays.sort(arrays, com);
for (String item:arrays) {
System.out.print(item+" ");
}
/**
* 将字符串数字按首字母先后进行排序
*
* Java原生排序为 数字->英文->中文
* 为了将英文和中文首字母相同的排列到一起
* 先将字符串首字符为汉字的改为该汉字的首字母加上该字符串
* 为了以示区分中间再加一个分割符&
* 然后使用Java原生排序算法
* 再将包含&字符的字符串中的&和首字母去除从而达到排序目的
* */
public static void main(String[] args) {
String[] arrays = new String[] { "gyu", "sdf", "zf", "大同", "收到", "地方", "三等分", "的人", "反对高铁", "泛代数", "上的投入", "和国家" };
for (int i = 0; i < arrays.length; i++) {
  String str = arrays;
  if (str.length() == 0)
  return;
  String alphabet = str.substring(0, 1);
  /*判断首字符是否为中文,如果是中文便将首字符拼音的首字母和&符号加在字符串前面*/
  if (alphabet.matches("[\\u4e00-\\u9fa5]+")) {
  str = getAlphabet(str) + "&" + str;
  arrays = str;
  }
}
/*设置排序语言环境*/
Comparator<Object> com = Collator.getInstance(java.util.Locale.CHINA);
Arrays.sort(arrays, com);
/*遍历数组,去除标识符&及首字母*/
for (int i=0;i<arrays.length;i++) {
  String str=arrays;
  if(str.contains("&")&&str.indexOf("&")==1){
  arrays=str.split("&")[1];
  }
  System.out.println(arrays);
}
}
public static String getAlphabet(String str) {
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();

以上就是扣丁学堂Java在线学习小编给大家分享的Java编程实现中英混合字符串数组按首字母排序的方法,希望对小伙伴们有帮助。想要了解更多内容的小伙伴可以登录扣丁学堂官网查看,或者是通过扣丁学堂微信等平台咨询。扣丁学堂是专业的Java培训机构,通过千锋扣丁学堂金牌讲师在线录制Java视频教程内容,让你快速掌握Java从入门到精通的实战技能,想要学好Java的话现在就行动吧。Java技术交流群:670348138。


文章转载自:扣丁学堂http://www.codingke.com/



回复

使用道具 举报