gpt4 book ai didi

java - 对数组列表进行排序时出现问题

转载 作者:行者123 更新时间:2023-12-02 10:23:19 25 4
gpt4 key购买 nike

有没有更好的方法来排序,以获得正确的顺序?谢谢

import java.io.*;
import java.util.*;


public class JpgDirToHtm
{
public static void main(String[] args) throws FileNotFoundException
{




Scanner kb = new Scanner(System.in);
System.out.print("Enter the path of the folder whose contents you wish to insert into an html file: ");
String path = kb.nextLine();



File folder = new File(path);
File[] listOfFiles = folder.listFiles();
ArrayList<String> htmlTextList = new ArrayList<String>();

for (int i = 0; i < listOfFiles.length; i++)
{
if (listOfFiles[i].isFile())
{
htmlTextList.add(listOfFiles[i].getName() );
}


}

Collections.sort(htmlTextList);

System.out.println(htmlTextList);
}
}

这就是它打印的内容[1.jpeg、10.jpg、11.jpeg、12.jpeg、13.jpeg、14.jpeg、16.jpg、17.jpg、18.jpg、19.jpg、2.jpeg、20.jpg、21 .jpg、22.jpg、23.jpg、24.jpg、25.jpg、3.jpg、5.jpg、7.jpeg、9.jpg]

我需要 2.jpeg 在 1.jpeg 等之后。

抱歉,可能有一个简单的修复方法,但我在谷歌上没有找到任何东西。我是编程新手。

其他一切都很好。整个程序可以拍摄数千张照片,并自动将它们(尺寸正确)以您可以设置的每页给定照片数量放置在 html 网页中。如果有人有兴趣获得其余代码,我将发布它。

最佳答案

编写您自己的比较器:

    Collections.sort(list, new Comparator<String>() {

@Override
public int compare(String o1, String o2) {
String filename1 =o1.substring(0,o1.indexOf("."));
String filename2 =o2.substring(0,o2.indexOf("."));
return Integer.valueOf(filename1).compareTo(Integer.valueOf(filename2));
}
});

这会将文件名转换为整数并进行比较。但请注意,它仅在您的文件名是数字时才有效!

关于java - 对数组列表进行排序时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54163912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com