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



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



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



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


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



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



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

994   11  

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]", ""));

чтение из порядка выполнения

  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);

Comments

    Ничего не найдено.