Преобразование строки в целое число на Android
как преобразовать строку в целое число?
у меня есть текстовое поле, в которое пользователь вводит число:
EditText et = (EditText) findViewById(R.id.entry1);
String hello = et.getText().toString();
и значение присваивается строка hello.
Я хочу преобразовать его в целое число, чтобы я мог получить число, которое они набрали; он будет использоваться позже в коде.
есть ли способ получить EditText в целое число? Это пропустило бы среднего человека. Если нет, то строка в целое число будет просто отлично.
11 ответов:
смотрите целочисленный класс и статический
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;
использовать регулярное выражение-лучший способ сделать это, как уже упоминалось Ашиш Саху
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); }
вы должны скрытую строку, чтобы плавать. Это работает.
float result = 0; if (TextUtils.isEmpty(et.getText().toString()) { return; } result = Float.parseFloat(et.getText().toString()); tv.setText(result);
лучший способ преобразовать строку в int:
EditText et = (EditText) findViewById(R.id.entry1); String hello = et.getText().toString(); int converted=Integer.parseInt(hello);
вы можете использовать следующее для разбора строки на целое число:
int value=целое число.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 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()захватите и верните целое число из строки только для цифр.
гораздо более простой метод заключается в использовании
decodeметодIntegerнапример:int helloInt = Integer.decode(hello);
Comments