Как мне преобразовать строку в целое число?
У меня есть текстовое поле, в котором пользователь вводит номер в:
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);
}
Используйте регулярное выражение:
String s="your1string2contain3with4number";
int i=Integer.parseInt(s.replaceAll("[\\D]", ""));
вывод: я = 1234;
Если вам нужна первая комбинация чисел, вам следует попробовать код ниже:
String s="abc123xyz456";
int i=NumberFormat.getInstance().parse(s).intValue();
вывод: я = 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);
}
Лучший способ преобразовать вашу строку в int - это:
EditText et = (EditText) findViewById(R.id.entry1);
String hello = et.getText().toString();
int converted=Integer.parseInt(hello);
Вы можете использовать следующее, чтобы проанализировать строку на целое число:
значение 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
Вы должны спрятать 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]", ""));
Чтение из порядка исполнения
findViewById (R.id.button1)
((Button) ______)
, чтобы создатьView
какButton
.GetText ()
, чтобы получить текстовую запись из кнопки.toString ()
, чтобы преобразовать изменение символа в строку.ReplaceAll ()
с " [\\ D] "
, чтобы заменить все неперевариваемые символы на" "(ничего)Integer.parseInt ()
grap и верните целое число из строки только для цифр.Гораздо проще использовать метод decode
Integer
, например:
int helloInt = Integer.decode(hello);
Существуют доступные методы расширения, чтобы проанализировать их на другие примитивные типы.
["10" .toInt ()
][6]
["10" .toLong ()
][7]
["true" .toBoolean ()
][1]
["10.0" .toFloat ()
][2]
["10.0" .toDouble ()
][3]
["10" .toByte ()
][4]
["10" .toShort ()
][5]
[1]: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/kotlin.-string / to-boolean.html [2]: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/kotlin.-string / to-float.html [3]: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/kotlin.-string / to-double.html [4]: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/kotlin.-string / to-byte.html [5]: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/kotlin.-string / to-short.html [6]: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/kotlin.-string / to-int.html [7]: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/kotlin.-string / to-long.html
String num = "10";
Integer.parseInt(num );
Есть пять способов конвертировать Первый путь:
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
Могут быть и другие способы Но это то, что я помню сейчас