我知道我的标题有点误导,但我不确定如何把它放进去。
基本上我有一个文件夹,其图像名称为:0.png高达100.png。当我尝试使用以下方法加载它们时:
public static void buildImageList() {
Main.log("Building list of image files...");
File[] files = new File(Constants.getImageLocation()).listFiles();
int id = 0;
for (File file : files) {
if (file.isDirectory()) {
continue;
}
if (!file.getName().contains(".png") && !file.getName().contains(".jpg") && !file.getName().contains(".jpeg") && !file.getName().contains(".PNG")) {
continue;
}
imageFiles.add(new FileImage(id, fileToByteArray(file)));
id++;
}
Main.log("Found " + imageFiles.size() + " images in the folder!");
}
我得到的文件不按有序顺序:0.png,1.png,10.png,11.png等等。
我需要改变什么才能得到0.png,1.png,2.png,3.png?
答案 0 :(得分:0)
最简单的方法是使用:
<?php
include 'db.php';
$query="select * from sc_products";
$result = $mysqli->query($query) or die($mysqli->error.__LINE__);
$arr = array();
if($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$arr[] = $row;
}
}
echo $json_response = json_encode($arr);
?>
java.io.File实现Comparable接口,按字典顺序比较路径名。订购实际上取决于操作系统。如果您需要任何自定义排序逻辑,您可以为Arrays#sort()方法提供自定义比较器:
Arrays.sort(files);
答案 1 :(得分:0)
感谢您的指导,我已使用以下代码修复了它:
Arrays.sort(files, (o1, o2) -> {
final int id1 = Integer.parseInt(o1.getName().substring(0, o1.getName().indexOf(".")));
final int id2 = Integer.parseInt(o2.getName().substring(0, o2.getName().indexOf(".")));
final int result = Integer.compare(id1, id2);
return result != 0 ? result : (id1 - id2);
});