我是Java新手。我有一个检查statement
的要求,如果它包含特定的ambguity word
,那么请执行一些操作。
所以,这是代码:
for (NlpAmbiguityWords nlpAmbiguityWord : nlpAmbiguityWordsList) {
String ambiguityWord = nlpAmbiguityWord.getWord();
if (statement.contains(ambiguityWord)) {
findAmbiguityWords(statement, ambiguityWord, ambiguityPhrase);
}
}
现在,POJO有一个轻微的变化,除了传递ambguity word
,我们还必须传递另外两个参数,precededBy
和followedBy
。。并且这两者都可以包含字符串数组(因此它们可以具有逗号分隔的值(。要求是:前面和后面的歧义词不应被视为要在表中显示的歧义词。
例如:如果不明确的单词是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);
}
}