下面的方法可以完成这项工作,但效率不高。
有谁知道一个更优雅的解决方案来做到这一点?
我摸索过这样的事情,但到目前为止还没有运气: /^(foo|bar|[[:space:][:punct:]])+$/
static public boolean matchTitle(String title, String title2) {
Scanner scanner1 = new Scanner(title);
Scanner scanner2 = new Scanner(title2);
String searchTitle = title2;
boolean match = false;
int i = 0;
while(i < 2){
if(i == 1){
scanner1 = new Scanner(title2);
scanner2 = new Scanner(title);
searchTitle = title;
}
// breaks into words
while (scanner1.hasNext()){
match = false;
String token = scanner1.next();
scanner2 = new Scanner(searchTitle);
while (scanner2.hasNext() && !match){
String token2 = scanner2.next();
if(token.equals(token2)){
// if the words match
match = true;
}
}
if(!match){ // we have a word that didn't match any words in the second title
return false;
}
}
i++;
}
return true;
}
例子
("相似词在这里", "相似词在这里") // true
("相似的词在这里", "这里的词相似") // true
("这里相似词", "这里相似词不同") // false