java - number - Convertir una cadena en un entero en Android
string to int c# (11)
¿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);
}
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);
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);
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);
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);
}
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
- tomar la vista usando
findViewById(R.id.button1)
- use
((Button)______)
para convertir laView
en unButton
- Llamar a
.GetText()
para obtener la entrada de texto desde el botón - Llamar a
.toString()
para convertir la.toString()
caracteres en una cadena - Llamar a
.ReplaceAll()
con"[//D]"
para reemplazar todos los caracteres que no sean dígitos con "" (nada) - Llame a
Integer.parseInt()
y obtenga un entero de la cadena Sólo dígitos.
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]", ""));
}
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;
int in = Integer.valueOf(et.getText().toString());
//or
int in2 = new Integer(et.getText().toString());