Home > Back-end >  How can i convert 'X' to '*' and them compute it in dart
How can i convert 'X' to '*' and them compute it in dart

Time:08-18

i am building a calculator app although its working fine but i just want to make it look like this before its is been turn into mathematical expression: how do i achieve something like this:

'5X4' = 20
instead of using the asterisk sign '5*4' = 20

like i want to be able to replace the string 'X' in background before it's been computed

i tried this code below:

final multiply = '5X4';
  final computed = multiply.replaceAll('X','*');
  final result = computed;

if i run the

print(result)

but if i try print(int.parse(result));

the console print out

Uncaught Error: FormatException: 5*4

how do i fix this?

CodePudding user response:

You can use expressions package. Here is an example:

String data = "12x2÷3-2 4";
data = data.replaceAll("x", "*");
data = data.replaceAll("÷", "/");

Expression expression = Expression.parse(data);

const evaluator = ExpressionEvaluator();
var r = evaluator.eval(expression, {});
print(r.toString()); // 10.0

CodePudding user response:

You should try this approach.

final multiply = '5X4';
  final computed = multiply.replaceAll('X','*');
  final List<String> variable1 = computed.split('*');
  final result = int.parse(variable1.first) * int.parse(variable1.last);
  final lastResult = '$computed = $result';
  
  print(lastResult);

Dartpad

  • Related