Android: convertir String a int

Estoy simplemente tratando de convertir una cadena que se genera desde un escáner de código de barras a un int para que pueda manipularlo tomando el resto para generar un número de números enteros. Hasta ahora he intentado:

int myNum = 0; try { myNum = Integer.parseInt(myString.getText().toString()); } catch(NumberFormatException nfe) { } 

y

 Integer.valueOf(mystr); 

y

 int value = Integer.parseInt(string); 

El primero me da el error: El método getText () no está definido para el tipo String mientras que los dos últimos no tienen errores de compilación, pero la aplicación se bloquea inmediatamente cuando se llaman. Pensé que tenía que ver con mi código de barras de exploración método intención, pero lo puse en el OnCreate y aún así el error.

Cambio

 try { myNum = Integer.parseInt(myString.getText().toString()); } catch(NumberFormatException nfe) { 

a

 try { myNum = Integer.parseInt(myString); } catch(NumberFormatException nfe) { 

Ya es una cadena? Quite la llamada getText ().

 int myNum = 0; try { myNum = Integer.parseInt(myString); } catch(NumberFormatException nfe) { // Handle parse error. } 

Utilice la expresión regular:

 int i=Integer.parseInt("hello123".replaceAll("[\\D]","")); int j=Integer.parseInt("123hello".replaceAll("[\\D]","")); int k=Integer.parseInt("1h2el3lo".replaceAll("[\\D]","")); 

salida:

 i=123; j=123; k=123; 

Sólo tienes que escribir la línea de código para convertir tu cadena en int.

  int convertedVal = Integer.parseInt(YOUR STR); 

Utilice la expresión regular:

 String s="your1string2contain3with4number"; int i=Integer.parseInt(s.replaceAll("[\\D]", "")) 

Salida: i = 1234;

Si usted necesita la combinación del primer número entonces usted debe intentar debajo del código:

 String s="abc123xyz456"; int i=((Number)NumberFormat.getInstance().parse(s)).intValue() 

Salida: i = 123;

Código de barras a menudo consisten en un gran número, así que creo que su aplicación se bloquea debido al tamaño de la cadena que está intentando convertir a int . Puede utilizar BigInteger

 BigInteger reallyBig = new BigInteger(myString); 

No se puede convertir a cadena si su valor entero es cero o comienza con cero (en cuyo caso el primer cero se descuidará). Trate de cambiar.

 int NUM=null; 
  • ¿Por qué Android utiliza Ints en vez de Enums?
  • CharSequence to int
  • Cómo rellenar Spinner con valor int
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.