Я работаю со строками в формате, который я упомянул, например, "5: 4", и мне нужно получить их значение (например, "5: 4" равно 1,25).
Простой .toDouble(), что будет лучшим подходом
.toDouble()
Вы могли бы Iterable.reduce():
Iterable.reduce()
println( a.split(":").map { it.toDouble() }.reduce { a, b -> a / b } ) // 1.25
Метод с простым Котлином, использующий метод String.split(), может выглядеть следующим образом:
String.split()
// INPUT val ratio = "5:4" // can be "5/4" as well // splits given string into a list and then cast it's members into Double val items : List<Double> = (ratio.split(":", "/")).map { it.toDouble() } // [5, 4] var result = 0.0 // calculate the ratio if (items.size == 2 && items[1] != 0.0) result = items[0] / items[1] println(result) // 1.25
String a="5:4"; a= a.replaceAll(":", "/"); float result = new Expression(a).eval();