먼저 코드를 살펴 보겠습니다
public class 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)); // output 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 ()는 null과 빈 줄을 만나면 정상적으로 출력 할 수 있으므로 오류가 발생하지 않습니다.
포장 유형 정수가 어떻게 처리되는지 살펴 보겠습니다.
두 가지 방법 모두에서 Parseint (S, 10)는 문자열 S를 10 진수 INT 기본 유형으로 변환하는 것이지만 valueof ()는 int 범위 (설계 모드에서 엔티티 모드 사용)에 따라 [-127, 127]의 내부 캐시에서 검색됩니다.
Parseint (S, 10)를 살펴 보겠습니다. 이 방법에서는 문자열이 법적 번호인지 판단하고 NULL, 빈 문자열 등과 같은 다른 형식을 확인하므로 오류를 던질 것입니다.
공개 정적 int parseint (문자열 s, int radix)는 숫자 formatexception { / * * 경고를 던졌습니다. integercache가 초기화되기 전에 VM 초기화 중에이 메소드가 조기에 호출 될 수 있습니다. 사용하지 않도록주의해야합니다. * */ if (s == null) {wrach new numberformatexception ( "null"); } if (radix <arribute.min_radix) {wrach numberformatexception ( "radix" + radix + "character.min_radix보다 작음"); } if (radix> 문자 .max_radix) {wrach new numberformatexception ( "radix" + radix + "ar } int result = 0; 부울 부정 = 거짓; int i = 0, len = s.length (); int limit = -integer.max_value; int multmin; int 숫자; if (len> 0) {char firstchar = s.charat (0); if (firstchar < '0') {// 가능한 선두 "+"또는 "-"if (firstchar == '-') {negative = true; 한계 = integer.min_value; } else if (firstChar! = '+') 던지기 숫자 formatexception.forinputString (s); if (len == 1) // 고독한 "+"또는 "-"wrach numberformatexception.forinputString (s); i ++; } multmin = 한계 / radix; while (i <len) {// 부정적인 축적은 max_value digit = arribit.digit (s.charat (i ++), radix) 근처의 놀라움을 피합니다. if (digit <0) {Throw NumbumberFormateXception.forinputString (s); } if (result <multmin) {Throw NumberFormateXception.forinputString (s); } 결과 *= radix; if (result <limit + digit) {Throw NumberFormateXception.forinputString (s); } 결과 -= 숫자; }} else {Throw NumbumberFormateXception.forinputString (s); } 반환 음수? 결과 : -result; }요약
위의 내용은 편집자가 소개 한 Java의 Integer.valueof, parsetint () string.value의 차이 및 결과 코드 분석입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!