我想对listFiles中不包含字符串的整数进行排序。最小的数字将显示“最小的数字=”,最大的数字将显示“最大的数字=”

public static void main(String[] args) {
        // TODO Auto-generated method stub
        File folder = new File("input/");
        File [] files = folder.listFiles();

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

            String fileFullName = files[i].getName();
            String fileSimple= fileFullName.substring(2,fileFullName.length()-4);
            long fileNumber =Long.parseLong(fileSimple);

            String fileFullName2 = files[i+1].getName();
            String fileSimple2= fileFullName2.substring(2,fileFullName2.length()-4);
            long fileNumber2 =Long.parseLong(fileSimple2);
        }
    }


文件名包括HR20190405.txt,AR20290405.txt,RG20290805.txt,RK21290405.txt

最佳答案

summaryStatistics中有合适的方法IntStream。使用流API,它将看起来像:

IntSummaryStatistics stat = Arrays.stream(files)
        .mapToInt(file -> Integer.valueOf(file.getName().substring(2, file.getName().length() - 4)))
        .summaryStatistics();

System.out.println(stat.getMin());
System.out.println(stat.getMax());

07-24 14:52