Tengo una pregunta simple en Java: ¿Cómo puedo convertir un String
que se obtuvo por Long.toString()
a long
?Cómo convertir String a long en Java?
Respuesta
Uso 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
public class StringToLong {
public static void main (String[] args) {
// String s = "fred"; // do this if you want an exception
String s = "100";
try {
long l = Long.parseLong(s);
System.out.println("long l = " + l);
} catch (NumberFormatException nfe) {
System.out.println("NumberFormatException: " + nfe.getMessage());
}
}
}
no funciona bien – Erum
Long.valueOf(String s) - obviamente se debe tener cuidado de proteger contra no números si eso es posible en su código.
nota: este método devuelve no 'long' pero' Long' object –
En caso de que esté utilizando el Mapa sin genérico, deberá convertir el valor en Cadena y luego intentar convertirlo a Largo. A continuación se muestra el código de ejemplo
Map map = new HashMap();
map.put("name", "John");
map.put("time", "9648512236521");
map.put("age", "25");
long time = Long.valueOf((String)map.get("time")).longValue() ;
int age = Integer.valueOf((String) map.get("aget")).intValue();
System.out.println(time);
System.out.println(age);
El mejor enfoque es Long.valueOf(str)
ya que se basa en Long.valueOf(long)
que utiliza una caché interna por lo que es más eficiente ya que volverá a utilizar si es necesario los casos en caché de Long
que van de -128
a 127
incluido.
Devuelve una instancia
Long
que representa el valor largo especificado. Si no se requiere una instancia nueva de , este método generalmente debe ser usado con preferencia al constructorLong(long)
, ya que este método es que probablemente rinda significativamente mejor el rendimiento de espacio y tiempo por caché de valores solicitados con frecuencia. Tenga en cuenta que, a diferencia del método correspondiente en la clase Entero, este método no es necesario para almacenar valores en caché dentro de un rango particular.
Gracias a auto-unboxing que permite convertir instancia de una clase contenedora en su tipo primitivo correspondiente, el código serían entonces:
long val = Long.valueOf(str);
Tenga en cuenta que el código anterior todavía puede lanzar una NumberFormatException
si el proporcionado String
no coincide con un long
firmado.
En términos generales, es una buena práctica utilizar el método static
fábrica valueOf(str)
de una clase contenedora como Integer
, Boolean
, Long
, ... ya que la mayoría de ellos reutilizar casos siempre que sea posible, haciéndolos potencialmente más eficiente en términos de la huella de memoria que los métodos parse
correspondientes o constructores.
Extracto de Effective JavaItem 1
escrito por Joshua Bloch:
A menudo se puede evitar la creación de objetos innecesarios mediante el uso de estática métodos de fábrica (Artículo 1) con preferencia a los constructores de inmutable clases que proporcionan ambos. Por ejemplo, el método de fábrica estático
Boolean.valueOf(String)
es casi siempre preferible al constructorBoolean(String)
. El constructor crea un nuevo objeto cada vez que es llamado, mientras que el método de fábrica estático nunca es requerido para hacerlo y no lo hará en la práctica.
Vale la pena señalar que el auto-unboxing es "desagrupado" por el compilador en, para el caso de long -> Long, Long.valueOf (primitiveLong). Entonces 'Long number = Long.valueOf (" 123 ")', 'Long number = Long.parseLong (" 123 ")' y 'Long number = Long.valueOf (Long.parseString (" 123 ")' todo termina haciendo más o menos lo mismo. Lo que * desea * tener cuidado no es llamar a constructores de las clases primitivas en caja, eso puede ser un desperdicio. Por lo tanto, no escriba 'Número largo = nuevo Largo (parseLong (" 123 ")) ' –
Para aquellos que cambiaron a Kotlin sólo tiene que utilizar
string.toLong()
que llamará Long.parseLong(string)
bajo el capó
Hay alguna manera de convertir una cadena a un entero:
1)
long l = Long.parseLong("200");
2)
String numberAsString = "1234";
long number = Long.valueOf(numberAsString);
3)
String numberAsString = "1234";
Long longObject = new Long(numberAsString);
long number = longObject.longValue();
Nos puede acortar a:
String numberAsString = "1234";
long number = new Long(numberAsString).longValue();
o sólo
long number = new Long("1234").longValue();
4) uso del formato Decemal:
String numberAsString = "1234";
DecimalFormat decimalFormat = new DecimalFormat("#");
try {
long number = decimalFormat.parse(numberAsString).longValue();
System.out.println("The number is: " + number);
} catch (ParseException e) {
System.out.println(numberAsString + " is not a valid number.");
}
- 1. Cómo convertir Map <String, String> a Map <Long, String> usando guava
- 2. Cómo convertir long a int en .net?
- 3. Cómo convertir 'long long' (o __int64) a __m64
- 4. Cómo convertir org.jdom.Document a String
- 5. Cómo convertir String to Reader en Java
- 6. Convertir Java String en sql.Timestamp
- 7. ¿Puedo convertir long a int?
- 8. Cómo convertir JTextField a String y String en JTextField?
- 9. Cómo convertir String a DOM ¿Objeto de documento en Java?
- 10. Cómo convertir Joda LocalDate a String en Java?
- 11. Convertir array MD5 a String java
- 12. cómo convertir NSinteger a String
- 13. Java long to binary
- 14. Cómo convertir Guid [] a String?
- 15. Java: Cómo convertir String [] a List o Set
- 16. equivalente en Java de unsigned long long?
- 17. Cómo convertir datetime a string en linqtosql?
- 18. Cómo convertir SID a String en .net
- 19. Convertir System.Array a string []
- 20. Cómo convertir System :: String^en std :: string?
- 21. C#: Cómo convertir long to ulong
- 22. convertir int a std :: string
- 23. Convertir DateTime a String PHP
- 24. cadena de conversión a long long
- 25. Convertir bytes ASCII [] a String
- 26. Cómo convertir std :: string a LPCSTR?
- 27. Cómo convertir WebResponse.GetResponseStream return into a string?
- 28. ¿Cómo puedo convertir DataRow a string Array?
- 29. ¿Cómo convertir NSString a C string?
- 30. cast Long a BigDecimal
[5] maneras con ejemplos (http://javadevnotes.com/java-string-to-long-examples) para cómo convertir cadena a largo en Java –