我想检查一个字符串是否在另一个字符串中包含特定长度的字符序列,例如
String user1_hobbies = "friends, cinema/outside"
String user2_hobbies = "outside, going out with friends"
boolean check;
if (user1_hobbies.contains(user2_hobbies)){
check = true;
} else
{check = false
}
ofc 此尝试不起作用,因为整个字符串必须包含整个字符序列。我只是想检查,是否只有两个字符串的一部分匹配...在这种情况下它应该匹配,因为“朋友”或“外部”匹配。
最佳答案
按照@JBNizet的提示,您可以为两个句子创建两组单词,然后检查两组单词之间的交集是否非空:
Set<String> set1 = new HashSet<String>(Arrays.asList(user1_hobbies.split(" ")));
Set<String> set2 = new HashSet<String>(Arrays.asList(user2_hobbies.split(" ")));
set1.retainAll(set2);
if (set1.size() > 0) {
System.out.println("There was a match.");
}
else {
System.out.println("There were no matches.");
}
您可能需要首先删除所有无关的标点符号,例如逗号或斜杠。在您的实际问题中,可能还需要做更多的工作。
关于java - java比较两个字符串的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36968797/