Comment convertir Ssortingng en long en Java?

J’ai une question simple en Java: comment convertir une Ssortingng obtenue par Long.toSsortingng() en long ?

Utilisez Long.parseLong()

  Long.parseLong("0", 10) // returns 0L Long.parseLong("473", 10) // returns 473L Long.parseLong("-0", 10) // returns 0L Long.parseLong("-FF", 16) // returns -255L Long.parseLong("1100110", 2) // returns 102L Long.parseLong("99", 8) // throws a NumberFormatException Long.parseLong("Hazelnut", 10) // throws a NumberFormatException Long.parseLong("Hazelnut", 36) // returns 1356099454469L Long.parseLong("999") // returns 999L 

Pour convertir une chaîne en Long (object), utilisez Long.valueOf(Ssortingng s).longValue();

Voir le lien

 public class SsortingngToLong { public static void main (Ssortingng[] args) { // Ssortingng s = "fred"; // do this if you want an exception Ssortingng s = "100"; try { long l = Long.parseLong(s); System.out.println("long l = " + l); } catch (NumberFormatException nfe) { System.out.println("NumberFormatException: " + nfe.getMessage()); } } } 

Long.valueOf (Ssortingng s) – il faut évidemment veiller à se protéger contre les non-numéros si cela est possible dans votre code.

La meilleure approche est Long.valueOf(str) car elle repose sur Long.valueOf(long) qui utilise un cache interne le rendant plus efficace puisqu’il réutilisera si nécessaire les instances mises en cache de Long allant de -128 à 127 inclus.

Renvoie une instance Long représentant la valeur longue spécifiée. Si une nouvelle instance Long n’est pas requirejse, cette méthode doit généralement être utilisée de préférence au constructeur Long(long) , car cette méthode est susceptible de générer des performances d’espace et de temps nettement meilleures en mettant en cache les valeurs fréquemment demandées. Notez que contrairement à la méthode correspondante dans la classe Integer, cette méthode n’est pas requirejse pour mettre en cache les valeurs dans une plage particulière.

Grâce à l’ auto-unboxing permettant de convertir l’instance d’une classe de wrapper en son type primitif, le code serait alors:

 long val = Long.valueOf(str); 

Veuillez noter que le code précédent peut toujours lancer une NumberFormatException si la Ssortingng fournie ne correspond pas à une long signée.

En règle générale, il est conseillé d’utiliser la méthode de fabrique static valueOf(str) d’une classe de wrapper comme Integer , Boolean , Long , car la plupart d’entre elles réutilisent les instances chaque fois que cela est possible, ce qui les rend potentiellement plus efficaces en terme de empreinte mémoire que les méthodes d’ parse ou les constructeurs correspondants.


Extrait de l’ Item 1 Java efficace écrit par Joshua Bloch :

Vous pouvez souvent éviter de créer des objects inutiles en utilisant des méthodes de fabriques statiques (élément 1), de préférence aux constructeurs de classes immuables fournissant les deux. Par exemple, la méthode de fabrique statique Boolean.valueOf(Ssortingng) est presque toujours préférable au constructeur Boolean(Ssortingng) . Le constructeur crée un nouvel object à chaque fois qu’il l’appelle, alors que la méthode de fabrique statique n’est jamais requirejse et ne le fera pas dans la pratique.

Il existe un moyen de convertir ssortingng en Integer :

1)

 long l = Long.parseLong("200"); 

2)

 Ssortingng numberAsSsortingng = "1234"; long number = Long.valueOf(numberAsSsortingng).longValue(); 

3)

  Ssortingng numberAsSsortingng = "1234"; Long longObject = new Long(numberAsSsortingng); long number = longObject.longValue(); 

Nous pouvons raccourcir à:

 Ssortingng numberAsSsortingng = "1234"; long number = new Long(numberAsSsortingng).longValue(); 

Ou juste

 long number = new Long("1234").longValue(); 

4) En utilisant le format Decemal:

  Ssortingng numberAsSsortingng = "1234"; DecimalFormat decimalFormat = new DecimalFormat("#"); try { long number = decimalFormat.parse(numberAsSsortingng).longValue(); System.out.println("The number is: " + number); } catch (ParseException e) { System.out.println(numberAsSsortingng + " is not a valid number."); } 

Si vous utilisez la carte sans générique, vous devez convertir la valeur en chaîne, puis essayer de la convertir en long. Ci-dessous, un exemple de code

  Map map = new HashMap(); map.put("name", "John"); map.put("time", "9648512236521"); map.put("age", "25"); long time = Long.valueOf((Ssortingng)map.get("time")).longValue() ; int age = Integer.valueOf((Ssortingng) map.get("aget")).intValue(); System.out.println(time); System.out.println(age); 

Pour ceux qui sont passés à Kotlin, utilisez simplement
ssortingng.toLong()
Cela appellera Long.parseLong(ssortingng) sous le capot

Le code suivant fonctionne pour moi,

 Ssortingng str="123"; Long value = Long.valueOf(str); 

Voir le lien