Comment convertir Ssortingng en Long en Kotlin?

Kotlin Challenge a commencé.

Toutes les tâches consistent à écrire un programme de console qui lit les parameters de la console et écrit la sortie sur la console pour permettre la vérification automatique.

la méthode principale à Kotlin ressemble à

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

La plupart des parameters d’entrée dans les tâches doivent être interprétés comme des nombres. Donc, à cause du manque de méthodes comme Long.valueOf(Ssortingng s) je suis resté bloqué. Je ne peux pas convertir Ssortingng en Long et j’ai honte.

1. ssortingng.toLong()

Analyse la chaîne en tant que numéro [Long] et renvoie le résultat.

@throws NumberFormatException si la chaîne n’est pas une représentation valide d’un nombre.

2. ssortingng.toLongOrNull()

Analyse la chaîne en tant que nombre [Long] et renvoie le résultat ou null si la chaîne n’est pas une représentation valide d’un nombre.

3. str.toLong(10)

Analyse la chaîne en tant que numéro [Long] et renvoie le résultat.

@throws NumberFormatException si la chaîne n’est pas une représentation valide d’un nombre.

@throws IllegalArgumentException lorsque [radix] n’est pas une base valide pour la conversion de chaîne en nombre.

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

4. ssortingng.toLongOrNull(10)

Analyse la chaîne en tant que nombre [Long] et renvoie le résultat ou null si la chaîne n’est pas une représentation valide d’un nombre.

@throws IllegalArgumentException lorsque [radix] n’est pas une base valide pour la conversion de chaîne en nombre.

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

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

 public static Long valueOf(Ssortingng s) throws NumberFormatException 

Ssortingng a une méthode d’extension correspondante:

 "10".toLong() 

Les méthodes d’extension sont disponibles pour que Ssortingng s les parsing dans d’autres types primitifs. Exemples ci-dessous:

  • "true".toBoolean()
  • "10.0".toFloat()
  • "10.0".toDouble()
  • "10".toByte()
  • "10".toShort()
  • "10".toInt()
  • "10".toLong()

Note: Les réponses mentionnant jet.Ssortingng sont obsolètes. Voici l’actuel Kotlin (1.0):

Toute Ssortingng dans Kotlin a déjà une fonction d’extension que vous pouvez appeler sur toLong() . Rien de spécial n’est nécessaire, il suffit de l’utiliser.

Toutes les fonctions d’extension pour Ssortingng sont documentées. Vous pouvez en trouver d’autres pour la lib standard dans la référence de l’ API

C’est intéressant. Code comme ceci:

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

rend cette sortie:

 2 true 

Je suppose, Kotlin fait la conversion de java.lang.Long et longue primitive en kotlin.Long automatiquement dans ce cas. Donc, c’est la solution, mais je serais heureux de voir l’outil sans l’utilisation du paquet java.lang.

En fait, 90% du temps, vous devez également vérifier le «long» est valide, vous avez donc besoin de:

 "10".toLongOrNull() 

Il y a un équivalent «orNull» pour chaque «toLong» des types de base, et ceux-ci permettent de gérer les cas invalides avec le Kotlin? idiome.

Il y a 5 façons différentes de convertir une chaîne en une longue en langage de programmation Kotlin, qui sont les suivantes:

  1. ssortingng.toLong ()
  2. ssortingng.toLongOrNull ()
  3. ssortingng.toLong (10)
  4. ssortingng.toLongOrNull (10)
  5. java.lang.Long.valueOf (chaîne)

Référez-vous aux documents pour des explications détaillées.

ssortingng.toLong ()

ssortingng est votre variable.