Вопрос-ответ

How do I convert a String to an int in Java?

Как мне преобразовать строку в int в Java?

Как я могу преобразовать String значение в int тип?

"1234"1234
Переведено автоматически
Ответ 1
String myString = "1234";
int foo = Integer.parseInt(myString);

Если вы посмотрите на документацию Java, вы заметите, что "загвоздка" в том, что эта функция может выдавать NumberFormatException, с которым вы можете справиться:

int foo;
try {
foo = Integer.parseInt(myString);
}
catch (NumberFormatException e) {
foo = 0;
}

(В этой обработке искаженное число по умолчанию равно 0, но вы можете сделать что-то еще, если хотите.)

В качестве альтернативы вы можете использовать Ints метод из библиотеки Guava, который в сочетании с Java 8 Optional обеспечивает мощный и краткий способ преобразования строки в int:

import com.google.common.primitives.Ints;

int foo = Optional.ofNullable(myString)
.map(Ints::tryParse)
.orElse(0)
Ответ 2

Например, вот два способа:

Integer x = Integer.valueOf(str);
// or
int y = Integer.parseInt(str);

Между этими методами есть небольшая разница:


  • valueOf возвращает новый или кэшированный экземпляр java.lang.Integer

  • parseInt возвращает примитив int.

То же самое для всех случаев: Short.valueOf/parseShort, Long.valueOf/parseLong и т.д.

Ответ 3

Что ж, очень важный момент, который следует учитывать, заключается в том, что анализатор целых чисел выдает исключение NumberFormatException, как указано в Javadoc .

int foo;
String StringThatCouldBeANumberOrNot = "26263Hello"; //will throw exception
String StringThatCouldBeANumberOrNot2 = "26263"; //will not throw exception
try {
foo = Integer.parseInt(StringThatCouldBeANumberOrNot);
} catch (NumberFormatException e) {
//Will Throw exception!
//do something! anything to handle the exception.
}

try {
foo = Integer.parseInt(StringThatCouldBeANumberOrNot2);
} catch (NumberFormatException e) {
//No problem this time, but still it is good practice to care about exceptions.
//Never trust user input :)
//Do something! Anything to handle the exception.
}

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

Ответ 4

Сделайте это вручную:

    public static int strToInt(String str) {
int i = 0;
int num = 0;
boolean isNeg = false;

// Check for negative sign; if it's there, set the isNeg flag
if (str.charAt(0) == '-') {
isNeg = true;
i = 1;
}

// Process each character of the string;
while (i < str.length()) {
num *= 10;
num += str.charAt(i++) - '0'; // Minus the ASCII code of '0' to get the value of the charAt(i++).
}

if (isNeg)
num = -num;

return num;
}
java string