gpt4 book ai didi

java - 部分字符串匹配

转载 作者:行者123 更新时间:2023-11-30 02:39:28 25 4
gpt4 key购买 nike

我正在比较两个不同 map 的两个值并寻找完全匹配和部分匹配。我正在使用 val1.contains(val2) 检查部分匹配,但得到 false。我匹配的字符串示例是:

val1: Kansas City Athletics  
val2: Athletics

为什么 contains() 方法在这种情况下不起作用?

编辑

如果我的值(value)观互换了,这应该仍然有效吗?例如。如果

val1: Kansas City Athletics

val2: Athletics

这是我的代码:我正在迭代两个映射的值并比较值以获得完全匹配和部分匹配。

List<Integer> compareResults = new ArrayList<Integer>();
int i_index = 0;
for (Entry<String, Vector<String>> entry : annotationMap.entrySet()) {///String key: annotationMap.keySet()){
for (Entry<String, Vector<String>> rageEntry : rageMap.entrySet()) {
if (entry.getKey().equals("ORGANIZATION")) {
for (String val : entry.getValue()) {
recusion:
for (int i = i_index; i <= rageEntry.getValue().size(); ) {
String rageVal = rageEntry.getValue().elementAt(i);
if (val.equals(rageVal)) {
orgTruePositiveCount++;
i_index++;
break recusion;
} else if (val.contains(rageVal)) { //|| dataB.get(entryA.getKey()).contains(entryA
// .getValue())){
orgTruePositiveCount++;
i_index++;
break recusion;
} else if (!val.contains(rageVal)) {
orgFalseNegativeCount++;
i_index++;
break recusion;
} else if (!rageVal.contains(val)) {
orgFalsePositiveCount++;
i_index++;
break recusion;
}

}
}
}

if (entry.getKey().equals("PERSON")) {
for (String val : entry.getValue()) {
recusion:
for (int i = i_index; i <= rageEntry.getValue().size(); ) {
String rageVal = rageEntry.getValue().elementAt(i);

if (val.equals(rageVal)) {
perTruePositiveCount++;
i_index++;
break recusion;
} else if (val.contains(rageVal)) {
perTruePositiveCount++;
i_index++;
break recusion;
} else if (!val.contains(rageVal)) {
perFalseNegativeCount++;
i_index++;
break recusion;
} else if (!rageVal.contains(val)) {
perFalsePositiveCount++;
i_index++;
break recusion;
}
}
}
}

最佳答案

它似乎确实适用于您描述的情况 - 请参阅这个简单的示例:

public class ContainsExample {
public static void main(final String[] args) {
final String val1 = "Kansas City Athletics";
final String val2 = "Athletics";
System.out.println(val1.contains(val2));
System.out.println(val2.contains(val1));
}
}

运行此命令会产生:

$ java ContainsExample
true
false

关于java - 部分字符串匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42162532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com