0

I have 2 int variables and a String variable with an arithmetic operator inside. How could I do the addition?

var n1 : Int = 10
var n2 : Int = 9
var symbol : String = "+"
var result : Int = n1 + symbol.toInt() + n2

I receive the symbol variable in a string

Marcelo Alarcon
  • 394
  • 1
  • 3
  • 17

2 Answers2

2

To avoid code repetition, you can use functional references.

fun String.toIntOp(): Int.(Int) -> Int = when (this.trim()) {
    "+" -> Int::plus
    "-" -> Int::minus
    "*" -> Int::times
    "/" -> Int::div
    else -> error("Unknown operator $this")
}

fun main() {
    val n1 : Int = 10
    val n2 : Int = 9
    val symbol : String = "+"
    val result : Int = symbol.toIntOp()(n1, n2)
}
Tenfour04
  • 83,111
  • 11
  • 94
  • 154
1

Use Switch (Java) Use When (Kotlin)

when (cadena[1]) {
               " + " ->  resultado = n1 + n2
               " - " ->  resultado = n1 - n2
               " * " ->  resultado = n1 * n2
               " / " ->  resultado = n1 / n2
            }
Marcelo Alarcon
  • 394
  • 1
  • 3
  • 17