String数组排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了String数组排序相关的知识,希望对你有一定的参考价值。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Hello
public static void main(String[] args)
String s[]="5","a","8","12","c","b","d","c","a","b","e","f","f","8","22","a","f","e","15";
int temp=0;
int a=0;
String c[]=;
ArrayList<String> list=new ArrayList<String>();
for(int i=0;i<s.length;i++)
list.add(s[i]);
for(int j=0;j<list.size();j++)
if(!(list.get(j)).contains("a")&&!(list.get(j)).contains("f")&&!(list.get(j)).contains("c")&&!(list.get(j)).contains("b")&&!(list.get(j)).contains("e"))
a=temp++;

String s1=list.remove(j);
//System.out.println("次数"+a);
//System.out.println("字母"+s1);
c=s1.split("[a-z]");
Arrays.sort(c);

for(int k=0;k<c.length;k++)
System.out.println(c[k]);









帮我看看Arrays.sort()这个方法传入的数组,为什么没有进行排序,我哪里错了。

因为你把Arrays.sort(c)写在for循环里,每次s1只有一个数据而且是字符串(你可以把s1输出到控制台看看),所以Arrays.sort(c)不排序。我给你改了一下,改动的地方比较多,你看看吧。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Hello
public static void main(String[] args)
String s[]="5","a","8","12","c","b","d","c","a","b","e","f","f","8","22","a","f","e","15";
int c[]=;
ArrayList<String> list=new ArrayList<String>();
for(int i=0;i<s.length;i++)
list.add(s[i]);

ArrayList<String> list1=new ArrayList<String>();
for(int j=0;j<list.size();j++)
if(!(list.get(j)).contains("d")&&!(list.get(j)).contains("a")&&!(list.get(j)).contains("f")&&!(list.get(j)).contains("c")&&!(list.get(j)).contains("b")&&!(list.get(j)).contains("e"))
String s1=list.get(j);
list1.add(s1);


c=new int[list1.size()];
for(int k=0;k<list1.size();k++)
c[k]=Integer.parseInt(list1.get(k));

Arrays.sort(c);
for(int k=0;k<c.length;k++)
System.out.println(c[k]);



运行结果:
5
8
8
12
15
22
参考技术A 把c数组的类型改成char 我怎么感觉没有sort()里面的参数没有String类型的追问

你试试把String数组放入sort()中,还是一样可以排序的,上面这个不知道哪里错了

java数组之排序

/**
 * String排序算法依据<b>词典编排顺序排序</b><br>
 * 所以大写字母开头的词都放在前面输出,之后才是小写之母开头的词
*@date:2018年6月22日
*@author:zhangfs


*/
public class ArraySortDemo {

    
    public static void main(String[] args) {
        String[] strings= {"YNzbr","nyGcf","OWznT"};
        
        print("排序前:"+Arrays.toString(strings));
        
        Arrays.sort(strings);
        
        print("排序后:"+Arrays.toString(strings));
        
        Arrays.sort(strings,String.CASE_INSENSITIVE_ORDER);
        print("忽略大小写字母将单词都放在一起排序:"+Arrays.toString(strings));

    }
}
output:

排序前:[YNzbr, nyGcf, OWznT]


排序后:[OWznT, YNzbr, nyGcf]


忽略大小写字母将单词都放在一起排序:[nyGcf, OWznT, YNzbr]

 

知识点:

String排序算法依据<b>词典编排顺序排序</b><br>
 * 所以大写字母开头的词都放在前面输出,之后才是小写之母开头的词





以上是关于String数组排序的主要内容,如果未能解决你的问题,请参考以下文章

java String数组按照某个中文数组排序

二维数组排序

按内部 HTML 对超链接数组进行排序

Java中数组的ArrayList排序

数组合并排序

java数组之排序