как мне вызвать метод выражения разбора в моем методе JAX-RS @post, который принимает строку от клиента. я понятия не имею, как это сделать, поэтому любая помощь или примеры, которые могут сработать, будут высоко оценены
код, чтобы помочь с большим количеством операций
import java.util.regex.Matcher;
import java.util.regex.Pattern;
открытый класс ExpressionParser {
public static final Pattern SPLIT_REGEX = Pattern.compile("(?:([-]?\\d+)([-+/*=])?)");
public long parseExpression(String expression) {
long left = 0;
char operator = '+';
Matcher m = SPLIT_REGEX.matcher(expression);
while (m.find()) {
String operand = "";
try {
operand = m.group(1);
} catch (IndexOutOfBoundsException e) {
operand = "0";
}
left = calculate(left, operator, Long.valueOf(operand));
String oper = m.group(2);
if (oper != null)
operator = oper.charAt(0);
}
return left;
}
private long calculate(long left, char operator, long right) {
switch (operator) {
case '+':
return left + right;
case '-':
return left - right;
case '*':
return left * right;
case '/':
return left / right;
case '=':
return left;
default:
return 0L;
}
}
}
мой код Jax-RS
@ Путь ( "вычислить")
общедоступный калькулятор класса {
private final Long value;
public Calculator() {
value = 0L;
}
public Calculator(Long initialValue) {
this.value = initialValue;
}
@GET
public Long getValue() {
return value;
}
@Path("add/{value1}/{value2}")
@GET
@Produces(MediaType.APPLICATION_JSON)
public Long add(@PathParam("value1") Long value, @PathParam("value2") Long value2) {
return value + value2;
}
@Path("subtract/{value1}/{value2}")
@GET
@Produces(MediaType.APPLICATION_JSON)
public Long subtract(@PathParam("value1") Long value, @PathParam("value2") Long value2) {
return value - value2;
}
@Path("multipli/{value1}/{value2}")
@GET
@Produces(MediaType.APPLICATION_JSON)
public Long multipli(@PathParam("value1") Long value, @PathParam("value2") Long value2) {
return value * value2;
}
@Path("divide/{value1}/{value2}")
@GET
@Produces(MediaType.APPLICATION_JSON)
public Long divide(@PathParam("value1") Long value, @PathParam("value2") Long value2) {
return value / value2;
}
}