我有一组文件,数千个文件。让我们说这些文件就像:
abc a
abc bnd nm
abc vcb
abc
abc something
nmn as
nmn af
nmn bvf
我需要对这些文件进行分组。我需要通过部分名称匹配来分组这些文件。所以,在这个例子中,我将有2组。一个是组[abc]和组[nmn]。有什么建议?
答案 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组,然后输入任意键