我有三个变量int value1,value2和一个String运算符。我想检查if条件。假设value1 = 4,value2 = 3且在operator ='>'中。那么我如何检查示例的条件 -
int value1=4;
int value2=3;
String operator=">";
if (value1+operator+value2)
{
System.out.println("hello");
}
i know the this is wrong but how to correct it..
答案 0 :(得分:1)
您将无法直接使用String。您必须检查它是什么类型的运算符,然后执行显式数学运算。
public boolean applyOperator(String op, int a, int b) {
if (">".equals(op)) {
return a > b;
} // the others are an exercise to the reader.
}
// later in the code
if(applyOperator(operator, value1, value2)) {
System.out.println("Hello world!");
}
答案 1 :(得分:1)
最简单的方法可能是为您希望使用的每个可用运算符创建一个if
语句。
int value1=4;
int value2=3;
String operator=">";
if(operator.equals(">"))
{
if(value1 > value2)
{
System.out.println("hello");
}
}
else if(operator.equals("<"))
{
// And so on...
}
答案 2 :(得分:0)
你可以简单地给它。
if (value1 > value2)
顺便说一句,您为什么要在operator
中提供String
,然后使用String
代替运营商?对此有什么特殊要求吗?在这种情况下, @ Makoto的回答对你来说是一个不错的选择。
答案 3 :(得分:0)
value1 + operator + value2将只是一个字符串,而不是if
中需要的布尔值
所以而不是if (value1+operator+value2)
放if (value1 > value2)
答案 4 :(得分:0)
比较java中的两个整数:
if (value1 > value2) {
System.out.println("Hello");
}
您不应该将运算符放入字符串中。 在java中,'+'用于添加数字和串联,而不是用于构建表达式。