如何找出一个单词前面或后面是一些特定的单词

  • 本文关键字:单词 前面 何找出 一个 java
  • 更新时间 :
  • 英文 :


我是Java新手。我有一个检查statement的要求,如果它包含特定的ambguity word,那么请执行一些操作。

所以,这是代码:

for (NlpAmbiguityWords nlpAmbiguityWord : nlpAmbiguityWordsList) {
String ambiguityWord = nlpAmbiguityWord.getWord();
if (statement.contains(ambiguityWord)) {
findAmbiguityWords(statement, ambiguityWord, ambiguityPhrase);
}
}

现在,POJO有一个轻微的变化,除了传递ambguity word,我们还必须传递另外两个参数,precededByfollowedBy。。并且这两者都可以包含字符串数组(因此它们可以具有逗号分隔的值(。要求是:前面和后面的歧义词不应被视为要在表中显示的歧义词。

例如:如果不明确的单词是user,前面的单词是admin、tester、superadmin(由3个逗号分隔的值组成(,如果条件在3种情况中的任何一种情况下都为true,则它是不明确的。。意思是如果在这种情况下不应该评估内部的条件。followedBy也是如此,precedBy和followedBy的组合也是如此。

我不完全理解你想要实现,但如果你想对先例(逗号分隔单词列表(、后序(逗号分隔词列表(和歧义单词的每个组合应用一些逻辑,你可以使用以下结构:

for (NlpAmbiguityWords nlpAmbiguityWord : nlpAmbiguityWordsList) {
String ambiguityWord = nlpAmbiguityWord.getWord();
String[] precededBys = new String[]{};
if (nlpAmbiguityWord.getPrecededBy()!=null)
precededBys =nlpAmbiguityWord.getPrecededBy().split(",");
String[] followedBys = new String[]{};
if (nlpAmbiguityWord.getFollowedBy()!=null)
followedBys =nlpAmbiguityWord.getFollowedBy().split(",");
for (String precedent:precededBys) {
// TODO: apply your logic with just precedent and ambiguityWord
for (String followed:folowedBys) {
// TODO: apply your logic using precendent, ambiguityWord and followed
}
}
for (String followed:folowedBys) {
// TODO: apply your logic using just ambiguityWord and followed
}
if (statement.contains(ambiguityWord)) {
findAmbiguityWords(statement, ambiguityWord, ambiguityPhrase);
}
}

最新更新