Как преобразовать строку в int в Java? Рекомендуем | Примечания по отладке Java

Java

Эта статья участвует в "Месяце тем Java - Заметки по отладке Java", подробности см.Ссылка на мероприятие

Вопрос: Как преобразовать String в int в Java?

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

Моя строка содержит только числа, и я хочу вернуть число, которое она представляет.

Например, учитывая строку «1234», результатом должно быть число 1234.

Высокий балл ответа:


String myString = "1234";
int foo = Integer.parseInt(myString);

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

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

(Эта обработка по умолчанию устанавливает для искаженных чисел значение 0, но при необходимости вы можете выполнять другие действия.)

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

import com.google.common.primitives.Ints;

int foo = Optional.ofNullable(myString)
 .map(Ints::tryParse)
 .orElse(0)

Помимо перехвата NumberFormatException, пользователь также должен обращать внимание на длину передаваемой строки. Если они достаточно длинные, чтобы переполнить целые числа, вы можете рассмотреть возможность использования Long::parseLong

Высокий балл ответа:

723

Например, следующие два способа:

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

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

    valueOf 返回的新实例或缓存实例 java.lang.Integer
    parseInt返回原始值int。

Одинаково для всех случаев: Short.valueOf/parseShort, Long.valueOf/parseLong и т. д.

Есть одно отличие - новый объект, выделенный valueOf (вероятно), имеет накладные расходы (память для этого объекта, обработка, GC), тогда как простой int очень "легкий". (Для наиболее распространенных значений вы получите ссылку на уже существующий объект, что поможет.)

Integer.valueOf(s)

похожий на

new Integer(Integer.parseInt(s))

Статья переведена сАминь 2 множественных ярлыка соответственно 6 дорвей 75 колит стал 67 там-АС4 из 6, 2, 7, очевидно 2 ах-переполнение стека-ком.перевод.о боже/вопросы/5…

Предложение автора: valueOf в исходном коде новое целое(Integer.parseInt(s)), рекомендуется использовать parseInt.

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

Ставьте лайк 👍 Подписывайтесь ❤️ Делитесь 👥 Мне очень полезно с 8 пакетами пресса! ! !

Если в этом блоге есть какие-либо ошибки, пожалуйста, критикуйте и советуйте, это очень ценится! ❤️❤️❤️❤️