Подтвердить что ты не робот

Android: преобразование String в int

Я просто пытаюсь преобразовать строку, которая сгенерирована из сканера штрих-кода, в int, чтобы я мог манипулировать им, взяв оставшуюся часть для создания заданного числа целых чисел. До сих пор я пробовал:

int myNum = 0;

try {
    myNum = Integer.parseInt(myString.getText().toString());
} catch(NumberFormatException nfe) {

} 

и

Integer.valueOf(mystr);

и

int value = Integer.parseInt(string); 

Первая дает мне ошибку: метод getText() - undefined для типа String в то время как последние два не имеют ошибок компиляции, но приложение сразу же срабатывает, когда вызываются. Я думал, что это связано с моим методом сканирования штрих-кода, но я положил его в OnCreate и все еще получил ошибку.

4b9b3361

Ответ 1

Изменить

try {
    myNum = Integer.parseInt(myString.getText().toString());
} catch(NumberFormatException nfe) {

к

try {
    myNum = Integer.parseInt(myString);
} catch(NumberFormatException nfe) {

Ответ 2

Это уже строка? Удалите вызов getText().

int myNum = 0;

try {
    myNum = Integer.parseInt(myString);
} catch(NumberFormatException nfe) {
  // Handle parse error.
}

Ответ 3

Вам просто нужно написать строку кода, чтобы преобразовать вашу строку в int.

 int convertedVal = Integer.parseInt(YOUR STR);

Ответ 4

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

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;

Ответ 5

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

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

: я = 1234;

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

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

вывод: я = 123;

Ответ 6

штрих-код часто состоит из большого количества, поэтому я думаю, что ваше приложение вылетает из-за размера строки, которую вы пытаетесь преобразовать в int. вы можете использовать BigInteger

BigInteger reallyBig = new BigInteger(myString);

Ответ 7

Вы не можете преобразовать в строку, если ваше целочисленное значение равно нулю или начинается с нуля (в этом случае 1-м ноль будет пренебрегать). Попробуйте изменить.

int NUM=null;

Ответ 8

попробуй это

String t1 = name.getText().toString();
Integer t2 = Integer.parseInt(mynum.getText().toString());

boolean ins = myDB.adddata(t1,t2);

public boolean adddata(String name, Integer price)