java - java比较两个字符串的元素

标签 java string split contains

我想检查一个字符串是否在另一个字符串中包含特定长度的字符序列,例如

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/

相关文章:

java - 如何将图形绘制的字符串放在java中的椭圆形顶部

java - Guava Splitter.onPattern(..).split() 与 String.split(..) 有何不同?

C# 用两个冒号分割单词

python : Split string separated by a pipe symbol "|"

java - javax.crypto.KeyGenerator使用/random或/urandom生成 key 吗?

java - 在android中将值插入到sqlite数据库中

c# - 拆分字符串并附加到没有最后一个元素的新字符串,直到字符串列表为空

编辑元素时Java优先队列重新排序

java - Spring 与 hibernate : Duplicate entry for key 'PRIMARY'

MySQL使用字符串函数查找列中的最后一位数字