Java 使用正则表达式搜索哈希集
有一组字符串,我想搜索关键字。哈希集内容如下所示Java 使用正则表达式搜索哈希集,java,regex,hashset,Java,Regex,Hashset,有一组字符串,我想搜索关键字。哈希集内容如下所示 AB A1-A2-A3 A1 A2-A3 AD-A1 AZ ... 如果我使用theSet.contains(“A1”),那么它将只返回A1。但是,我想得到A1-A2-A3和A1和AD-A1。我的数据文件中的特殊字符是-,它是一行中包含的分隔符 如果我没有在字符串数组中使用HashSet和search,那么我知道如何使用matcher()。HashSet有什么解决方案吗?没有比迭代整个HashSet并在每个元素上运行匹配器更好的解决方案了 fo
AB
A1-A2-A3
A1
A2-A3
AD-A1
AZ
...
如果我使用theSet.contains(“A1”)
,那么它将只返回A1
。但是,我想得到A1-A2-A3
和A1
和AD-A1
。我的数据文件中的特殊字符是-
,它是一行中包含的分隔符
如果我没有在字符串数组中使用HashSet和search,那么我知道如何使用
matcher()。HashSet有什么解决方案吗?没有比迭代整个HashSet
并在每个元素上运行匹配器更好的解决方案了
for (String str : set) {
if (str.contains("A1")) {
// do whatever with str
}
}
没有比迭代整个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)
这是用python编写的。很难看,但也许能让你朝正确的方向走?好吧,你可以试试
取下所有的钥匙,构造一条很长的丑陋的线
,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编写的。非常难看,但可能会让您朝着正确的方向前进?只需在集合中循环,检查每个元素是否匹配请记住哈希集由哈希表支持。这意味着没有搜索哈希集的概念。您只能基于已有的已知密钥执行查找。使用正则表达式意味着您希望线性扫描哈希集,因此需要迭代…这是无法避免的。只需在该集中循环,检查每个元素是否匹配。请记住哈希集由哈希表支持。这意味着没有搜索哈希集的概念。您只能基于已有的已知密钥执行查找。使用正则表达式意味着您希望线性扫描哈希集,因此需要迭代……这是没有办法的。因此,我只是想看看是否可以通过哈希集使用“时间缩减”功能来搜索字符串数组。这可能会返回误报,因为它没有检查分隔符。@mahmood:不,不是这样的,我只是想看看是否可以通过哈希集使用“时间缩减”的功能来搜索字符串数组。这可能会返回误报,因为它没有检查分隔符。@mahmood:不,不是。