有一个字符串的哈希集,我想搜索键。哈希集内容看起来像
AB
A1-A2-A3
A1
A2-A3
AD-A1
AZ
...
如果我使用 theSet.contains("A1")
,那么它只会返回A1
。但是,我想得到A1-A2-A3
,A1
和AD-A1
.我的数据文件中的特殊字符是-
,这是分隔符,以防一行包含该字符。
如果我不使用 HashSet 并在字符串数组中搜索,那么我知道如何使用 matcher()
.哈希集有什么解决方案吗?
没有比遍历整个HashSet
并在每个元素上运行匹配器更好的解决方案了。
for (String str : set) {
if (str.contains("A1")) {
// do whatever with str
}
}
好吧,你可以尝试类似的东西...
拿走所有的键,并构造一个很长的丑陋的字符串
,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)
那是在蟒蛇中。 很丑陋,但也许让你朝着正确的方向前进?