Java 从列表中查找字符串,并查看是否部分位于另一个列表中
因此,我尝试在列表A中循环,以从列表D中找到元素,并在结果中得到如下结果:Java 从列表中查找字符串,并查看是否部分位于另一个列表中,java,groovy,Java,Groovy,因此,我尝试在列表A中循环,以从列表D中找到元素,并在结果中得到如下结果: Result="F10,12 ;FR300,157-159; FR300,161-162; FR300,183-184; FR300,185-186; FR300,187-188; FR300,191-192" List<String> D= ("D","F10","FR300","FR300" ) Li
Result="F10,12 ;FR300,157-159; FR300,161-162; FR300,183-184; FR300,185-186; FR300,187-188; FR300,191-192"
List<String> D= ("D","F10","FR300","FR300" )
List<String> A=("F10,12 | FR600,191-192 | FR400,191-192 | FR300,191-192 | FR300,187-188 | FR300,185-186 | FR300,183-184 | 3D | FR300,157-159 | 1D | FR300,161-162 | 300D")
String[] split_A = A.split("[|]")
String[] split_D = D.split("[,]")
for (s in split_A){
for (item in split_D){
if (item in s){
println "Result"+ s
}
}
}
Result=“F10,12;FR300157-159;FR300161-162;FR300183-184;FR300185-186;FR300187-188;FR300191-192”
列表D=(“D”、“F10”、“FR300”、“FR300”)
列表A=(“F10,12 | FR600191-192 | FR400191-192 | FR300191-192 | FR300187-188 | FR300185-186 | FR300183-184 | 3D | FR300157-159 | 1D | FR300161-162 | 300D”)
字符串[]split_A=A.split([|]”)
字符串[]split\u D=D.split(“[,]”)
对于(拆分中的s){
对于(拆分中的项目){
如果(s中的项目){
println“结果”+s
}
}
}
因此,我的问题是如何找到匹配项,并能够得到类似于我尝试使用contains()的结果的东西,但它没有正确工作,并且我无法真正添加具有特定值的变量,如var=FR300,F10因为如果我在一个包含400多条记录的表上运行脚本,并且D列中的值可以更改,那么我需要找到一个可以工作的名称。。。
谢谢你的提示 好吧,最后我还是这样做了。。我知道这不是最好的办法
String[] split_A = A.split("[|]")
Set<String> myset = new HashSet<>();
String [] split_D = D.split("[,]");
for(int i=0;i<split_D.length;i++){
myset.add(split_D[i]);
}
for (String elem1: myset){
for (elem2 in split_A){
if( elem2.contains(elem1)){
if (elem1!="D"){
println elem2+"Found match"
}
}
}
}
String[]split\u A=A.split([|]”)
Set myset=newhashset();
字符串[]split\u D=D.split(“[,]”);
对于(int i=0;i另一个备选方案如下:
for (String elem1: myset){
for (elem2 in split_A){
if( elem2.contains(elem1)){
if (elem1!="D"){
// println elem2+"Found match"
Result.add([elem2])
}
}
}
}
println Result
为什么D是一个列表,而它只是一个字符串?if应该看起来像这样if(s.contains(item))
它是一个列表,但只是在示例中,我这样放置它只是为了显示列表中的内容,但你是对的,我会编辑它,这样人们就不会感到困惑