2012-03-30 32 views
49

cómo convertir una cadena en una larga.Cómo convertir cadena a larga

para int que

int i = 3423; 
String str; 
str = str.valueOf(i); 

así, ¿cómo ir hacia otro lado pero con larga.

long lg; 
String Str = "1333073704000" 
lg = lg.valueOf(Str); 
+0

Este es un duplicado de la pregunta: ¿http://stackoverflow.com/a/2709269/108574 –

Respuesta

145

Esta es una forma común de hacerlo:

long l = Long.parseLong(str); 

También existe este método: Long.valueOf(str); diferencia es que parseLong devuelve una primitiva long mientras valueOf devuelve un objeto new Long().

+0

Gracias. me quedé atrapado en lg.getLong según [enlace] (http://developer.android.com/reference/java/lang/Long.html#getLong (java.lang.String)) – John

+0

'getLong' devuelve un largo desde una propiedad del sistema. Es por eso que no funciona como esperabas. – Cristian

+0

Es fácil cometer el error de asumir que la cadena de entrada está en la forma esperada; "90.77" lanzará ParseException con esto. Así que no ignore ParseException, pero síguelo para su caso de uso –

9

El método para convertir una cadena en una larga es Long.parseLong. La modificación de su ejemplo:

String s = "1333073704000"; 
long l = Long.parseLong(s); 
// Now l = 1333073704000 
+0

Gracias por su tiempo también. – John

+0

bienvenida ... – Lucifer

3

También puede probar siguiente,

long lg; 
String Str = "1333073704000" 
lg = Long.parseLong(Str); 
+0

Gracias por su tiempo. – John

4
String s = "1"; 

try { 
    long l = Long.parseLong(s);  
} catch (NumberFormatException e) { 
    System.out.println("NumberFormatException: " + e.getMessage()); 
} 
1

Haga esto:

long l = Long.parseLong(str); 

Sin embargo, compruebe siempre que str contiene dígitos para evitar excepciones de lanzamiento. Por ejemplo:

String str="ABCDE"; 
long l = Long.parseLong(str); 

podría lanzar una excepción pero esto

String str="1234567"; 
long l = Long.parseLong(str); 

no lo hará.

2
import org.apache.commons.lang.math.NumberUtils; 

Esto manejar null

NumberUtils.createLong(String) 
2

Si la entrada es String entonces te recomiendo para almacenar la cadena en un doble y luego convertir el doble de largo.

String str = "123.45"; 
Double a = Double.parseDouble(str); 

long b = Math.round(a); 
+0

¿Podría agregar también por qué cree que es mejor que simplemente llamar a 'parseLong()'? –

1

Uso parseLong(), por ejemplo .:

long lg = lg.parseLong("123456789123456789"); 
+1

@Mogsdad Gracias hermano, por sugerir. Se mostró demasiado extraño en la revisión Ahora lo has hecho realmente como una respuesta. –