欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

简洁代码(重写数组sort函数,字符串比较,)

程序员文章站 2024-03-24 12:16:46
...

        public String[] reorderLogFiles(String[] logs) {
            // 数组排序,重写排序方法
            Arrays.sort(logs, (log1, log2) -> {
                String[] split1 = log1.split(" ", 2);
                String[] split2 = log2.split(" ", 2);
                boolean isDigit1 = Character.isDigit(split1[1].charAt(0));// 标准库函数判断是数字还是字符
                boolean isDigit2 = Character.isDigit(split2[1].charAt(0));
                if (!isDigit1 && !isDigit2) {
                    int cmp = split1[1].compareTo(split2[1]);
                    if (cmp != 0)
                        return cmp;
                    return split1[0].compareTo(split2[0]);
                }
                return isDigit1 ? (isDigit2 ? 0 : 1) : -1;
            });
            return logs;
        }