java对英文单词排序

2019-10-09  本文已影响0人  朝闻道夕睡觉

排序规则:
先按照单词的长度排序,如果长度一样就按照单词的首字母排序 (两者都为降序)

        //apple,banana,grape,orange
        System.out.println("输入多个单词进行排序(逗号间隔):");
        //从控制台获取输入的英文单词
        String inputStr = new Scanner(System.in).next();
        //将单词用逗号进行分割成数组,然后把数组转换成有序的list(ArrayList)集合
        List<String> sortStrList = Arrays.asList(inputStr.split(","));
        //对英文单词的list进行排序
        sortStrList.sort((k1, k2) ->
                        /**
                         * k1 : 第一个要比较的对象
                         * k2 : 第二个要比较的对象
                         * return:
                         *         正整数->前移单词
                         *         负整数->后移单词
                         */
                        // k1.length() == k2.length()       比较k1的长度和k2的长度
                        // ? k2.charAt(0) - k1.charAt(0)    相等比较字符串的首字母 (根据英文的ASCLL码进行比较大小)
                        // :k2.length() - k1.length()      不相等就比较长度
                        k1.length() == k2.length() ? k2.charAt(0) - k1.charAt(0) : k2.length() - k1.length()
                //length() 获取一个字符串的长度;  charAt(int index) 获取字符串传入下标值的char类型字符

        );
        System.out.println("排序结果:" + sortStrList);
上一篇 下一篇

猜你喜欢

热点阅读