Давайте сначала посмотрим на код
открытый класс integerdemo {public static void main (string [] args) {string num = null; System.out.println (integer.parseint (num)); // Исключение java.lang.numberformatexception system.out.println (integer.valueof (num)); // Исключение java.lang.numberformatexception system.out.println (string.valueof (num)); // Выход NULL num = ""; System.out.println (integer.parseint (num)); // Исключение java.lang.numberformatexception System.out.println (integer.valueof (num)); // Исключение java.lang.numberformatexception System.out.println (string.valueof (num)); // пустая строка, ничего не выводится}}Давайте посмотрим, как написано string.valueof ()
String.valueof () может нормально выводиться при столкновении с нулевыми и пустыми строками, поэтому ошибки не бросаются.
Давайте посмотрим, как обрабатывается целое число типа упаковки
В обоих методах Parseint (S, 10) предназначен для преобразования строки S в десятичный базовый тип Int, но значение () будет извлечено из внутреннего кэша [-127, 127] в соответствии с диапазоном int (с использованием режима объекта в режиме проектирования)
Давайте посмотрим на Parseint (S, 10). В этом методе мы будем судить, является ли строка законным номером, и мы проверим другие форматы, такие как нулевая, пустая строка и т. Д., Поэтому мы вынесем ошибку
public static int parseint (String S, int Radix) Throws NumberFormateXception { / * * Предупреждение: этот метод может быть вызван рано во время инициализации виртуальной машины * до инициализации IntegerCache. Необходимо соблюдать осторожность, чтобы не использовать * значение значения. */ if (s == null) {бросить новое число formatexception ("null"); } if (radix <cearmy.min_radix) {throw new numberFormateXception ("Radix" + Radix + "меньше, чем символ.min_radix"); } if (radix> parmate.max_radix) {throw new numberformatexception ("radix" + radix + "больше, чем символ.max_radix"); } int result = 0; логический отрицательный = false; int i = 0, len = s.length (); int limit = -integer.max_value; int multmin; int Digit; if (len> 0) {char firstchar = s.charat (0); if (firstchar <'0') {// возможное ведущее "+" или "-" if (firstchar == '-') {негатив = true; Limit = integer.min_value; } else if (FirstChar! = '+') Throw NumberFormateXception.ForInputString (s); if (len == 1) // не может иметь одинокого "+" или "-" throw numberformatexception.forinputstring (ы); i ++; } multmin = limit / radix; while (i <len) {// Накапливание негативно избегает сюрпризов вблизи max_value digit = harem.digit (s.charat (i ++), radix); if (digit <0) {throw numberformatexception.forinputstring (ы); } if (result <multmin) {throw numberFormateXception.forinputString (s); } result *= Radix; if (result <limit + digit) {throw numberformatexception.forinputstring (ы); } result -= Digit; }} else {throw NumberFormateXception.forinputString (s); } вернуть отрицательный? РЕЗУЛЬТАТ: -Result; }Суммировать
Выше приведено анализ кода разницы и результатов integer.valueof, parsetint () string.valueof in java, введенную вам редактором. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!