gpt4 book ai didi

java - 来自字符串表达式的动态 If 条件

转载 作者:行者123 更新时间:2023-12-01 12:08:46 25 4
gpt4 key购买 nike

下面是我正在创建的 string 表达式的示例,然后我想在 if 语句的条件中使用该表达式。

public static String dynamicIf(String a, String b, String c){
String expression = "";
String[] list = {"one", "two", ""};

if(!a.equals(""))
expression += "a.equals(list[0])";

if(!b.equals(""))
{
if(!expression.equals(""))
expression += " && b.equals(list[1])";
else
expression += "b.equals(list[1])";
}

if(!c.equals(""))
{
if(!expression.equals(""))
expression += " && c.equals(list[2])";
else
expression += "c.equals(list[2])";
}

//String[] splitExpression = expression.split(" && ");

return expression;
}

因此上面的函数创建了一个字符串,然后我想在 if 语句的条件中使用该字符串。使用这些参数运行该方法的结果:

dynamicIf("one","two","");

a.equals(list[0]) && b.equals(list[1])

如何让字符串中的这个表达式在 if 的条件下运行?我希望你明白。谢谢。

最佳答案

您无法在 Java 中执行此操作,因为它不是解释性语言。相反,重新设计您的代码。像这样的事情可能会让你走上正轨:

public static boolean dynamicIf(String a, String b, String c) {

final String[] list = {"one", "two", ""};

boolean value = true;

if (!a.isEmpty()) {
value &= a.equals(list[0]);
}

if(!b.isEmpty()) {
value &= b.equals(list[1]);
}

if (!c.isEmpty()) {
value &= c.equals(list[2]);
}

return value;
}

这应该会为您提供与您正在寻找的相同的结果。示例:

if (dynamicIf("one", "two", ""))      // true
if (dynamicIf("", "two", "")) // true
if (dynamicIf("", "", "")) // true
if (dynamicIf("one", "two", "three")) // false

编辑:这可能是也可能不是您正在寻找的内容。您留下的评论为问题添加了更多背景,让我有不同的想法,但您想要的最终结果仍然不清楚。

关于java - 来自字符串表达式的动态 If 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27393619/

25 4 0
文章推荐: java - new Vector (int ) 之后的 (int ) 代表什么?