Java编程根据文件名排序

声明:欢迎批评指正

目标:实现文件名排序,文件名是汉字、字母、数字混排

前言:项目要实现文件名排序,网上很多混排文件名的方法需要引入PINYIN包,写的也很复杂,自己研究了下,发现了一个简单的方法,经过测试可以使用,大家也可以测试一下,看是不是简单有效

测试环境:eclipse javaee Version: 2018-09 (4.9.0)/jdk8/windows

准备工作:

一、api准备:

int java.io.File.compareTo(File pathname)

java File类的compareTo方法

Compares two abstract pathnames lexicographically. The ordering defined by this method depends upon the underlying system. On UNIX systems, alphabetic case is significant in comparing pathnames; on Microsoft Windows systems it is not.

按字典顺序比较两个路径名。此方法顺序依赖于底层系统。在UNIX系统中,字母比较中是有意义的,windows中不是。

Specified by: compareTo(...) in Comparable

Parameters:

pathname The abstract pathname to be compared to this abstract pathname

Returns:

Zero if the argument is equal to this abstract pathname, a value less than zero if this abstract pathname is lexicographically less than the argument, or a value greater than zero if this abstract pathname is lexicographically greater than the argument

0表示路径名一样,负数表示字典顺序小,正数表示字典顺序大。

Since:

1.2

 

<File> void java.util.Arrays.sort(File[] a, Comparator<? super File> c)

 

二、文件准备:

在windows的d盘中建立一个“测试”文件夹,在其下建立七个文件,结构如下:

D:\测试
├─a香蕉1
├─b苹果3
├─Z苹果1
├─桔子1
├─桔子2
├─苹果1
└─苹果2

三、项目准备:

在eclipse中新建一个java项目,定义一个包含main方法的类FileOrder

 

正文:

package com.file.fileorder;

import java.io.File;
import java.util.Arrays;
import java.util.Comparator;

public class FileOrder {

	public static void main(String[] args) {
		File dir = new File("D:\\测试");
		File[] files = dir.listFiles();
		Arrays.sort(files, new Comparator<File>() {

			@Override
			public int compare(File f1, File f2) {
				return f1.compareTo(f2);
			}

		});
		for (File f : files) {
			System.out.println(f.getName());
		}
	}

}

排序结果如下:

a香蕉1
b苹果3
Z苹果1
桔子1
桔子2
苹果1
苹果2

(全文完)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

humors221

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值