有一个HashSet字符串,我想搜索密钥。 HashSet内容类似于
AB
A1-A2-A3
A1
A2-A3
AD-A1
AZ
...
如果我使用theSet.contains("A1")
,则仅返回A1
。但是,我想获得A1-A2-A3
和A1
以及AD-A1
。我的数据文件中的特殊字符是-
,如果一行包含该字符,则为分隔符。
如果我不使用HashSet并在字符串数组中搜索,那么我知道如何使用matcher()
。 HashSet的任何解决方案?
答案 0 :(得分:6)
没有比迭代整个HashSet
并在每个元素上运行匹配器更好的解决方案了。
for (String str : set) {
if (str.contains("A1")) {
// do whatever with str
}
}
答案 1 :(得分:0)
嗯,你可以试试像......
拿走所有的钥匙,并构造一个非常长的丑陋的字符串
,AB,A1-A2-A3,A1,A2-A3,AD-A1,AZ,...
然后为A1找到所有'种类'的正则表达式:
uglystring = ",AB,A1-A2-A3,A1,A2-A3,AD-A1,"
thelist = re.findall("([^,]*A1[^,]*)", uglystring)
print (thelist)
那是在python中。非常难看,但也许会让你朝着正确的方向前进?