Преобразование строки в целое число на 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);