在Java中按文件名分组文件



我有一组文件,数千个文件。假设这些文件是这样的:

abc a 
abc bnd nm 
abc vcb 
abc 
abc something 
nmn as 
nmn af 
nmn bvf 

我需要把这些文件分组。我需要按部分名称匹配对这些文件进行分组。在这个例子中,我有两组。一个是组[abc]和组[nmn]。有什么建议吗?

编辑:原来有一个方法在String,使这比regex更容易:String.startsWith(String prefix)

http://docs.oracle.com/javase/7/docs/api/java/lang/String.html startsWith(以)

Regex是有用的,但是对于这样的事情来说有点过头了。我很抱歉一开始想多了…

(旧答案如下)

听起来像是regex的工作!

http://docs.oracle.com/javase/7/docs/api/java/util/regex/package-summary.html

String.matches()也有帮助。

基本上,您需要创建与文件名的第一部分匹配的正则表达式,然后是其后的任何内容。在您的问题的示例中,示例正则表达式将是"abc"。" for abc______ "one_answers"nmn. 0 "。" for nmn_____。这些可能不是100%正确的语法,但这是一般的想法。链接中的规则(查看Pattern类)将提供您所需要的几乎所有内容。

你要做的是创建两个新的Sets,每个前缀一个。然后循环遍历原始集合,并根据正则表达式将文件名放入其中一个集合或另一个集合。

创建String的哈希映射作为键和File(如果您想要存储文件对象)或String(如果文件名)的列表

并检查name是否以Anti开头,将其放在组1中,并使用您喜欢的键从Philips开始,在第二组中输入任意键

相关内容

  • 没有找到相关文章

最新更新