当前位置: java社区 > 02-初窥门径 > 阅读正文

java字符串数组排序

2021.8.17.   327 次   819字

jdk中在String类提供了一个字符串按照ASCII比较的方法compareTo(String)

例如,”abc”.compareTo(“ABC”)结果为32,它首先计算第一个字符的ASCII再相减,如果第一个字符相等,会自动计算第二个字符,以此循环,如果最终相等得到0,而大于0小于0则表示不相等。

下面使用此方法,并配合冒泡排序实现字符串数组排序。

    public static void main(String []args){

        String[] arr_str =new String[]{"abc","aed","afg","fge","Ade"};

        System.out.println("排序前:"+Arrays.toString(arr_str));

        bubble_sort_str(arr_str); // 冒泡排序

        System.out.println("排序后:"+Arrays.toString(arr_str));
    }
    private static void bubble_sort_str(String[] arr_str) {

        String t;
        // 利用冒泡排序法进行相关的排序
        for (int i = 0; i < arr_str.length-1; i++) {  // 需要n-1趟

            for(int j=0;j<arr_str.length-1-i;j++){

                // >0:升序, <0:降序
                if(arr_str[j].compareTo(arr_str[j+1])>0){
                    // 数组元素间进行调换
                    t = arr_str[j];
                    arr_str[j] = arr_str[j+1];
                    arr_str[j+1] = t;
                }
            }
        }
    }

程序运行结果如下:

  • 排序前:[abc, aed, afg, fge, Ade]
  • 排序后:[Ade, abc, aed, afg, fge]

字符串排序有特定用途,比如文件夹中的文件名排序时就需要使用,如果不使用String类的compareTo(String)方法,实现起来比较困难,需要记住此方法。

本篇完,还有疑问?

加入QQ交流群:11500065636 IT 技术交流群