gpt4 book ai didi

java - 如何使 && 作为字符串中的逻辑运算符

转载 作者:行者123 更新时间:2023-12-02 12:58:55 25 4
gpt4 key购买 nike

import java.util.ArrayList;
import java.util.List;


public class ListString {

public static void main(String[] args) {
// TODO Auto-generated method stub


List list=new ArrayList();
list.add("Patter1 -> Assert1");
list.add("Patter2 -> Assert2");
list.add("Patter3 -> Assert3");
list.add("Patter4 -> Assert4");
list.add("Patter5 -> Assert5");


for (int i = 0; i < list.size(); i++) {


String string = (String)list.get(i);
System.out.println(string);
StringBuffer stringAppended=new StringBuffer();
String[] split = string.split(" -> ");
for (int k = 0; k < split.length; k++) {
stringAppended.append(split[k]).append(" && ");
// System.out.println(split[k]);
}
stringAppended.replace(stringAppended.length() - 3, stringAppended.length(), " ");
System.out.println(stringAppended);

if(string.contains(stringAppended)){

System.out.println("INSIDE IF LOOP");

}

}

}

}

在上面的代码中,我尝试检查 Patter1Assert1 是否存在于 stringPath 中,字符串路径具有以下模式

Patter1 -> Assert1
Patter2 -> Assert2
Patter3 -> Assert3
Patter4 -> Assert4
Patter5 -> Assert5

我正在尝试通过下面的代码来做到这一点

if(stringPath.contains(stringAppended)){

System.out.println("INSIDE IF LOOP");

}

我正在做动态应用程序,其中 stringAppend 将有 Patter1 && Assert1 , stringAppend 在我的应用程序中将有更多像这样的 && ,这里我们如何让&&作为逻辑运算符,目前它被视为普通字符串

最佳答案

构建一个包含 && 的字符串不会神奇地将其变成可以计算的表达式。它仍然只是一个带有文本的字符串。

如果您有一个单词列表,并且需要检查输入文本是否包含所有这些单词,您必须做两件事:

  • 循环浏览单词并一次检查一个。

  • 确保您只匹配“单词”,例如如果单词是 is,则您不想匹配 this

  • (可选) 匹配单词时不区分大小写,例如单词 This 也匹配 this

要做到这一切,使用正则表达式是最简单的,例如

public static boolean containsAllWords(String input, List<String> words) {
for (String word : words) {
String regex = "(?i)\\b(?:" + Pattern.quote(word) + ")\\b";
if (! Pattern.compile(regex).matcher(input).find())
return false;
}
return true;
}

测试

System.out.println(containsAllWords("This was a test.", Arrays.asList("was", "test")));
System.out.println(containsAllWords("This was a test.", Arrays.asList("is", "test")));

输出

true
false

关于java - 如何使 && 作为字符串中的逻辑运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44344111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com