Преобразование строки в целое число на Android
Как преобразовать строку в целое число?
У меня есть текстовое поле. У меня есть пользователь, который вводит число:
EditText et = (EditText) findViewById(R.id.entry1);
String hello = et.getText().toString();
И значение присваивается строке hello
.
Я хочу преобразовать его в целое число, чтобы получить номер, который они набрали; он будет использоваться позже в коде.
Есть ли способ получить EditText
целое число? Это пропустит среднего человека. Если нет, строка в целое будет просто прекрасной.
Ответы
Ответ 1
См. класс Integer и статический метод parseInt()
:
http://developer.android.com/reference/java/lang/Integer.html
Integer.parseInt(et.getText().toString());
Вам нужно поймать NumberFormatException
, хотя в случае проблем во время разбора, так:
int myNum = 0;
try {
myNum = Integer.parseInt(et.getText().toString());
} catch(NumberFormatException nfe) {
System.out.println("Could not parse " + nfe);
}
Ответ 2
int in = Integer.valueOf(et.getText().toString());
//or
int in2 = new Integer(et.getText().toString());
Ответ 3
Использовать регулярное выражение:
String s="your1string2contain3with4number";
int i=Integer.parseInt(s.replaceAll("[\\D]", ""));
Выход:
я = 1234;
Если вам нужна первая комбинация чисел, вы должны попробовать под кодом:
String s="abc123xyz456";
int i=NumberFormat.getInstance().parse(s).intValue();
Выход:
я = 123;
Ответ 4
Использовать регулярное выражение:
int i=Integer.parseInt("hello123".replaceAll("[\\D]",""));
int j=Integer.parseInt("123hello".replaceAll("[\\D]",""));
int k=Integer.parseInt("1h2el3lo".replaceAll("[\\D]",""));
выход:
i=123;
j=123;
k=123;
Ответ 5
Использовать регулярное выражение - лучший способ сделать это, как уже упоминалось ashish sahu
public int getInt(String s){
return Integer.parseInt(s.replaceAll("[\\D]", ""));
}
Ответ 6
Попробуйте этот код, который действительно работает.
int number = 0;
try {
number = Integer.parseInt(YourEditTextName.getText().toString());
} catch(NumberFormatException e) {
System.out.println("parse value is not valid : " + e);
}
Ответ 7
Вы можете использовать следующее для синтаксического анализа целой строки:
int value = Integer.parseInt(textView.getText(). toString());
(1) input: 12, тогда это сработает.. потому что textview взял этот номер 12 как строку "12".
(2) input: "abdul", тогда он выдает исключение, которое является NumberFormatException. Чтобы решить эту проблему, нам нужно использовать try catch, как я упоминал ниже:
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());
}
Вы также можете обратиться к следующей ссылке для получения дополнительной информации:
http://developer.android.com/reference/java/lang/Integer.html
Ответ 8
Лучший способ конвертировать вашу строку в int:
EditText et = (EditText) findViewById(R.id.entry1);
String hello = et.getText().toString();
int converted=Integer.parseInt(hello);
Ответ 9
Вы должны скрывать String для плавания. Он работает.
float result = 0;
if (TextUtils.isEmpty(et.getText().toString()) {
return;
}
result = Float.parseFloat(et.getText().toString());
tv.setText(result);
Ответ 10
Вы также можете сделать это в одной строке:
int hello = Integer.parseInt(((Button)findViewById(R.id.button1)).getText().toString().replaceAll("[\\D]", ""));
Чтение из порядка выполнения
- захватить представление с помощью
findViewById(R.id.button1)
- используйте
((Button)______)
, чтобы сделать View
как Button
- Вызовите
.GetText()
, чтобы получить текстовую запись от кнопки
- Вызов
.toString()
для преобразования символа в строку
- Вызовите
.ReplaceAll()
с помощью "[\\D]"
, чтобы заменить все символы без цифр на "" (ничего)
- Вызвать
Integer.parseInt()
захватить и вернуть целое число из строки только для цифр.
Ответ 11
Проще всего использовать метод decode
Integer
, например:
int helloInt = Integer.decode(hello);