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

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

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

вывод: я = 1234;

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

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

вывод: я = 123 ;

Комментарии (0)

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

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;
Комментарии (1)

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

public int getInt(String s){
return Integer.parseInt(s.replaceAll("[\\D]", ""));
}
Комментарии (0)

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

int number = 0;
try {
    number = Integer.parseInt(YourEditTextName.getText().toString());
} catch(NumberFormatException e) {
   System.out.println("parse value is not valid : " + e);
} 
Комментарии (0)

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

 EditText et = (EditText) findViewById(R.id.entry1);
 String hello = et.getText().toString();
 int converted=Integer.parseInt(hello);
Комментарии (0)

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

значение int = Integer.parseInt (textView.getText () .toString ());

  • (1) ввод: * 12 тогда это будет работать.. потому что textview принял это 12 число как строку "12".

  • (2) ввод: * «abdul», тогда он бросит исключение, которое является NumberFormatException. Поэтому, чтобы решить эту проблему, нам нужно использовать попытку поймать, как я уже упоминал ниже:

  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

Комментарии (0)

Вы должны спрятать String, чтобы плавать. Работает.

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

result = Float.parseFloat(et.getText().toString());

tv.setText(result); 
Комментарии (0)

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

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 () grap и верните целое число из строки только для цифр.
Комментарии (2)

Гораздо проще использовать метод decode Integer, например:

int helloInt = Integer.decode(hello);
Комментарии (0)

Котлин

Существуют доступные методы расширения, чтобы проанализировать их на другие примитивные типы.

Ява

String num = "10";
Integer.parseInt(num );
Комментарии (0)

Есть пять способов конвертировать Первый путь:

String str = " 123" ;
int i = Integer.parse(str); 
output : 123

Второй способ:

String str = "hello123world";
int i = Integer.parse(str.replaceAll("[\\D]" , "" ) );
output : 123

Третий путь:

String str"123";
int i = new Integer(str);
output "123 

Четвертый путь:

String str"123";
int i = Integer.valueOf(Str);
output "123 

Пятый путь:

String str"123";
int i = Integer.decode(str);
output "123 

Могут быть и другие способы Но это то, что я помню сейчас

Комментарии (1)