Convertir una cadena en un entero en Android

¿Cómo convierto una cadena en un número entero?

Tengo un cuadro de texto en el que el usuario ingresa un número en:

EditText et = (EditText) findViewById(R.id.entry1); String hello = et.getText().toString(); 

Y el valor se asigna a la cadena hello .

Quiero convertirlo a un número entero para que pueda obtener el número que escribieron; se usará más adelante en el código.

¿Hay alguna manera de obtener EditText en un entero? Eso se saltaría al hombre del medio. Si no, cadena a entero estará bien.

Consulte la clase Integer y el método estático parseInt() :

http://developer.android.com/reference/java/lang/Integer.html

 Integer.parseInt(et.getText().toString()); 

Necesitarás capturar NumberFormatException en caso de problemas durante el análisis, entonces:

 int myNum = 0; try { myNum = Integer.parseInt(et.getText().toString()); } catch(NumberFormatException nfe) { System.out.println("Could not parse " + nfe); } 
 int in = Integer.valueOf(et.getText().toString()); //or int in2 = new Integer(et.getText().toString()); 

Usa expresiones regulares:

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

salida: i = 1234;

Si necesita la primera combinación de números, intente con el siguiente código:

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

salida: i = 123;

Usa expresiones regulares:

 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; 

Usar expresión regular es la mejor manera de hacerlo, como ya mencionó Ashish Sahu

 public int getInt(String s){ return Integer.parseInt(s.replaceAll("[\\D]", "")); } 

Prueba este código, realmente funciona.

 int number = 0; try { number = Integer.parseInt(YourEditTextName.getText().toString()); } catch(NumberFormatException e) { System.out.println("parse value is not valid : " + e); } 

Debes encubrir String para flotar. Está funcionando.

 float result = 0; if (TextUtils.isEmpty(et.getText().toString()) { return; } result = Float.parseFloat(et.getText().toString()); tv.setText(result); 

La mejor manera de convertir su cadena en int es:

  EditText et = (EditText) findViewById(R.id.entry1); String hello = et.getText().toString(); int converted=Integer.parseInt(hello); 

Puede usar lo siguiente para analizar una cadena en un entero:

int value = Integer.parseInt (textView.getText (). toString ());

(1) entrada: 12 entonces funcionará … porque la vista de texto ha tomado este número 12 como una cadena de “12”.

(2) entrada: “abdul” arrojará una excepción que es NumberFormatException. Entonces, para resolver esto, necesitamos usar try catch como lo menciono a continuación:

  int tax_amount=20; EditText edit=(EditText)findViewById(R.id.editText1); try { int value=Integer.parseInt(edit.getText().toString()); value=value+tax_amount; edit.setText(String.valueOf(value));// to convert integer to string }catch(NumberFormatException ee){ Log.e(ee.toString()); } 

También puede consultar el siguiente enlace para obtener más información: http://developer.android.com/reference/java/lang/Integer.html

También puedes hacerlo una línea:

 int hello = Integer.parseInt(((Button)findViewById(R.id.button1)).getText().toString().replaceAll("[\\D]", "")); 

Lectura del orden de ejecución

  1. tomar la vista usando findViewById(R.id.button1)
  2. use ((Button)______) para convertir la View en un Button
  3. Llamar a .GetText() para obtener la entrada de texto desde el botón
  4. Llamar a .toString() para convertir la .toString() caracteres en una cadena
  5. Llamar a .ReplaceAll() con "[\\D]" para reemplazar todos los caracteres que no sean dígitos con “” (nada)
  6. Llame a Integer.parseInt() y obtenga un entero de la cadena Sólo dígitos.

El método mucho más simple es usar el método de decode de Integer así que por ejemplo:

 int helloInt = Integer.decode(hello);