字符串数组排序

目录

  • 字符串数组排序


字符串数组排序

作者今天的一场笔试,需要用到字符串数组排序(当然原题肯定不止下面代码显示的那么简单),但是作者对CompareTo()方法的使用不是很熟练,今天学习了一下,完成了一个排序算法,主要是使用冒泡排序进行实现,代码如下:

public class StringSort {

    public static void main(String[] args) {
        String s = "abc abd sda ss Rds Abs Ras!";
        String[] s1 = s.split(" ");
        sort(s1);
        System.out.println(Arrays.toString(s1));
    }
    private static void sort(String[] s1) {
        for (int i = 0; i < s1.length; i++) {
            for (int j = i; j < s1.length - 1 -i; j++) {
                if (s1[j].compareTo(s1[j + 1]) > 0) {
                    String temp = s1[j];
                    s1[j] = s1[j + 1];
                    s1[j + 1] = temp;
                }
            }
        }
    }
}
        
输出结果为:[abc, abd, Abs, Ras!, Rds, sda, ss]

compareTo()用例有如下几个:

		String s1 = "a";
        String s2 = "c";
        // 如果两个字符串首字母不同,返回首字母ASCII码的差值
        System.out.println(s1.compareTo(s2)); // -2
        String s3 = "aa";
        String s4 = "ae";
        String s5 = "aa12342"
        // 如果两个字符串首字符相同,则比较下一个字符,直到有不同的为止,返回该不同字符的ASCII码的差值
        System.out.println(s3.compareTo(s4)); // -4
        // 如果两个字符串长度不一样长,可以参与比较的字符又完全一样
        System.out.println(s3.compareTo(s5)); // -5
        Integer num1 = 3;
        Integer num2 = 2;
        Integer num3 = 3;
        Integer num4 = 8;
        // 如果num1 > num2 则返回1, 等于 则返回 0, 小于 则返回 -1
        System.out.println(num1.compareTo(num2)); // 1
        System.out.println(num1.compareTo(num3)); // 0
        System.out.println(num1.compareTo(num4)); // -1

你可能感兴趣的:(常用经验,java)