Как сделать числа операторов в строке как int в kotlin - PullRequest
0 голосов
/ 28 марта 2019

Я хочу создать оператор в строке и показать значение как int.

// напр .:

val str= "1+2*3", распечатка -> "1+2*3"

// я хочу:

распечатать -> 7

однако я попытался создать код kotlin, например:

val str= "${1+2*3}" или val str= "1+2*3".toInt

но все это не работает.

любая помощь ???

1 Ответ

1 голос
/ 28 марта 2019

Для этого нужно иметь какой-то парсер.

Несколько примеров

http://mathparser.org/

Преимущество вышеописанного состоит в том, что вы можете выполнять любые вычисления, как показано ниже.

Expression e = new Expression("( 2 + 3/4 + sin(pi) )/2");
double v = e.calculate()

Или с помощью встроенного в Java Scriptengine.

ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
String foo = "1+2*3";
System.out.println(engine.eval(foo)); //prints 7
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...