按文件名对文件进行分组

时间:2014-05-01 22:23:37

标签: java file grouping

我有一组文件,数千个文件。让我们说这些文件就像:

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

我需要对这些文件进行分组。我需要通过部分名称匹配来分组这些文件。所以,在这个例子中,我将有2组。一个是组[abc]和组[nmn]。有什么建议?

2 个答案:

答案 0 :(得分:1)

修改:原来String中的方法比正则表达式更容易:String.startsWith(String prefix)

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

正则表达式很有用,但对于像这样的东西来说太过分了。我一开始就不好意思地推翻这个......

(旧答案如下)

听起来像正则表达式的工作!

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

String.matches()也会有所帮助。

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

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

答案 1 :(得分:0)

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

并检查名称是否以Anti开头,将其放在第1组中,并随附密钥 首先将Philips放入第2组,然后输入任意键