Преобразование строки в целое число на Android

Как преобразовать строку в целое число?

У меня есть текстовое поле, в котором пользователь вводит число:

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

И значение присваивается строке hello .

Я хочу преобразовать его в целое число, чтобы получить номер, который они набрали; Он будет использоваться позже в коде.

Есть ли способ получить EditText для целого числа? Это пропустит среднего человека. Если нет, строка в целое будет просто прекрасной.

См. Класс 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); } 
 int in = Integer.valueOf(et.getText().toString()); //or int in2 = new Integer(et.getText().toString()); 

Используйте регулярное выражение:

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

Выход: i = 1234;

Если вам нужна первая комбинация чисел, тогда вы должны попробовать под кодом:

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

Выход: i = 123;

Используйте регулярное выражение:

 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; 

Использовать регулярное выражение – лучший способ сделать это, как уже упоминалось ashish sahu

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

Попробуйте этот код, он действительно работает.

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

Вы можете использовать следующее для синтаксического анализа целой строки:

Int value = Integer.parseInt (textView.getText (). ToString ());

(1) : 12, тогда это сработает. Потому что textview взял этот номер 12 как строку «12».

(2) ввод: «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

Лучший способ конвертировать строку в int:

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

Вы должны скрывать String для плавания. Это работает.

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

Вы также можете сделать это в одной строке:

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

Чтение из порядка исполнения

  1. Захватить представление, используя findViewById(R.id.button1)
  2. Используйте ((Button)______) чтобы отобразить View как Button
  3. Вызовите .GetText() чтобы получить текстовую запись от кнопки
  4. Вызовите .toString() для преобразования символа в строку
  5. Вызовите .ReplaceAll() с "[\\D]" чтобы заменить все символы без цифр на "" (ничего)
  6. Вызов Integer.parseInt() захватывает и возвращает целое число из строки только для цифр.

Более простой способ – использовать метод decode Integer например:

 int helloInt = Integer.decode(hello);