tutorial español ejemplos compiler kotlin

español - kotlin vs java



Cómo convertir String a Long en Kotlin? (7)

Kotlin Challenge ha comenzado.

Todas las tareas consisten en escribir un programa de consola que lea los parámetros de la consola y escriba los resultados en la consola para que sea posible la verificación automática.

el método principal en Kotlin parece

fun main(args: Array<String>): Unit { //do something }

La mayoría de los parámetros de entrada en las tareas deben interpretarse como números. Entonces, debido a la falta de métodos como Long.valueOf(String s) me quedé atrapado. No puedo convertir String en Long y me siento avergonzado.


En realidad, el 90% del tiempo que también necesita verificar el ''largo'' es válido, por lo que necesita:

"10".toLongOrNull()

¿Existe un equivalente ''orNull'' para cada ''largo'' de los tipos básicos, y estos permiten administrar los casos no válidos manteniendo el Kotlin? idioma.


Es interesante. Código así:

val num = java.lang.Long.valueOf("2"); println(num); println(num is kotlin.Long);

hace esta salida:

2 true

Supongo que Kotlin hace la conversión de java.lang.Long y long primitive a kotlin.Long automáticamente en este caso. Por lo tanto, es una solución, pero me gustaría ver la herramienta sin el uso del paquete java.lang.



String tiene un método de extensión correspondiente:

"10".toLong()


Nota: Las respuestas que mencionan jet.String están desactualizadas. Aquí está Kotlin actual (1.0):

Cualquier String en Kotlin ya tiene una función de extensión a la que puede llamar a toLong() . No se necesita nada especial, solo úsala.

Todas las funciones de extensión para String están documentadas. Puede encontrar otros para lib estándar en la referencia api


1. string.toLong()

Analiza la cadena como un número [Largo] y devuelve el resultado.

@throws NumberFormatException si la cadena no es una representación válida de un número.

2. string.toLongOrNull()

Analiza la cadena como un número [Largo] y devuelve el resultado o null si la cadena no es una representación válida de un número.

3. str.toLong(10)

Analiza la cadena como un número [Largo] y devuelve el resultado.

@throws NumberFormatException si la cadena no es una representación válida de un número.

@throws IllegalArgumentException cuando [raíz] no es una base válida para la conversión de cadena a número.

public inline fun String.toLong(radix: Int): Long = java.lang.Long.parseLong(this, checkRadix(radix))

4. string.toLongOrNull(10)

Analiza la cadena como un número [Largo] y devuelve el resultado o null si la cadena no es una representación válida de un número.

@throws IllegalArgumentException cuando [raíz] no es una base válida para la conversión de cadena a número.

public fun String.toLongOrNull(radix: Int): Long? {...}

5. java.lang.Long.valueOf(string)

public static Long valueOf(String s) throws NumberFormatException


string.toLong()

donde la string es tu variable.