¿Cómo convierto un dígito Char (0-9) a su valor numérico?

Char.toInt() devuelve el código ASCII del carácter, en lugar de su valor numérico. Entonces, ¿cómo convierto el Char a un número integer con el valor numérico correcto?

También podría convertirlo en una String y luego usar toInt() que podría ser más obvio.

 fun Char.getNumericValue(): Int { if (!isDigit()) { throw NumberFormatException() } return this.toString().toInt() } 

Responder:

Puede crear una extensión en la class Char que sustrae 48 del código ASCII devuelto por toInt() . ¡Esto le dará el valor numérico apropiado del personaje!

 fun Char.getNumericValue(): Int { if (this !in '0'..'9') { throw NumberFormatException() } return this.toInt() - '0'.toInt() } 
  • ViewPager en Fragment no está funcionando por segunda vez
  • Kotlin NoClassDefFoundError con el método @RequestMapping de spring
  • Singleton con argumento en Kotlin
  • Este campo filtra un object de context
  • NoSuchMethodError utilizando Kotlin con el nuevo data binding de Android
  • Es posible escribir la function en Kotlin (es decir, en el nivel superior). ¿Puedo probar la unidad también en el nivel superior?
  • Kotlin: Cantidades masivas de ConsPStack, ¿cómo puedo evitar?
  • Comportamiento inesperado con AWS Lambda
  • reference no resuelta: lanzamiento
  • kotlin, cómo agregar la function de extensión al object compañero de class ya definido
  • Cómo controlar el flujo sin .flatMap, que rompe una stream reactiva que impide que operadores como distinctUntilChanged trabajen en toda la secuencia