logo

Java에서 문자열을 int로

자바에서는 문자열을 연산하다 보면 문자열로 표현된 숫자를 정수형으로 변환해야 할 때가 있다. 우리는 일반적으로 문자열에 대해 광범위하고 유연한 작업 세트를 사용할 수 있기 때문에 이렇게 합니다. Java에서 문자열을 정수로 변환하는 데 일반적으로 사용되는 방법은 다음과 같습니다. 파싱인트 ()의 문자열 클래스 .

이번 글에서는 자바에서 String을 int로 변환하는 방법을 알아보겠습니다.

Java 문자열을 Int로



Java 문자열을 int로 변환하는 프로그램

작동하는 parsInt() 메소드에 익숙해지기 위해 바로 예제를 살펴보겠습니다.

자바

ymail이 뭐야?




// Java program to demonstrate working parseInt()> // Where No NumberFormatException is Thrown> // Main class> public> class> GFG {> >// Main driver method> >public> static> void> main(String args[])> >{> >// Custom wide-varied inputs to illustrate> >// usage of valueOf() method> >int> decimalExample = Integer.parseInt(>'20'>);> >int> signedPositiveExample = Integer.parseInt(>'+20'>);> >int> signedNegativeExample = Integer.parseInt(>'-20'>);> >int> radixExample = Integer.parseInt(>'20'>,>16>);> >int> stringExample = Integer.parseInt(>'geeks'>,>29>);> >// Print commands on console> >System.out.println(decimalExample);> >System.out.println(signedPositiveExample);> >System.out.println(signedNegativeExample);> >System.out.println(radixExample);> >System.out.println(stringExample);> >}> }>

>

java8 기능
>

산출

20 20 -20 32 11670324>

Java의 ParseInt() 메소드

이 방법에는 두 가지 변형이 있습니다.

  1. parsInt(문자열 s): 이 함수는 문자열 인수를 부호 있는 10진수 정수로 구문 분석합니다.
  2. ParseInt(String s, int radix): 이 함수는 문자열 인수를 두 번째 인수로 지정된 기수의 부호 있는 정수로 구문 분석합니다.

ParseInt의 구문

public static int   parseInt(String str);   public static int   parseInt(String str, int radix);>

매개변수

  • str: S 정수로 변환해야 하는 문자열입니다.
  • 어근: 문자열이 구문 분석되는 동안 사용됩니다.

반환 유형

  • 두 방법 모두 문자열을 해당 정수로 변환합니다. 유일한 차이점은 매개변수 기수의 차이점입니다. 첫 번째 방법은 radix = 10(Decimal)으로 고려될 수 있습니다.

예외 발생

  • 번호형식예외 다음 상황 중 하나가 발생하는 경우 이 메서드에 의해 발생됩니다.

두 변형과 관련된 특정 핵심 사항을 기억하십시오.

  1. 문자열은 null이거나 길이가 0일 수 있습니다.
  2. 문자열이 나타내는 값은 int 유형의 값이 아닙니다.
  3. 특히 함수의 parsInt(String s, int radix) 변형의 경우:
    • 두 번째 인수 기수는 Character.MIN_RADIX보다 작거나 Character.MAX_RADIX보다 큽니다.
    • 문자열의 모든 문자는 지정된 기수의 숫자가 아닙니다. 단, 첫 번째 문자는 문자열이 다음과 같은 경우 빼기 기호 '-'('u002D') 또는 더하기 기호 '+'('u002B')일 수 있습니다. 길이 1보다 길다
  4. 문자열 앞에 0이 있는 경우,parseInt() 메소드는 이를 무시합니다.

사례 ParseInt() 메서드

그림을 더 잘 이해하기 위해 임의의 코드 조각을 살펴보겠습니다.

사례 1: ParseInt(20, 16)

32 , (2)*16^1 + (0)*16^0 = 32를 반환합니다.

사례 2:parseInt(2147483648, 10)

NumberFormatException이 발생합니다.

사례 3:parseInt(99, 8)

NumberFormatException이 발생합니다.
이유: 9는 8진수 체계에서 허용되는 숫자가 아닙니다.

사례 4: ParseInt(괴짜, 28)

NumberFormatException이 발생합니다.

사례 5:parseInt(geeks, 29)

11670324를 반환합니다. 이유: 29진법을 사용하는 숫자 체계는 숫자 0-9 뒤에 문자 a,b,c... 최대 s가 올 수 있습니다.

사례 6: parsInt(geeksforgeeks, 29)

NumberFormatException을 발생시킵니다. 이유: 결과가 정수가 아닙니다.

ParseInt() 메서드의 숫자 형식 예외

아래에 언급된 parsInt() 메소드로 인해 발생하는 예외:

자바




java에서 csv 파일 읽기

SQL의 여러 테이블에서 선택
// Java Program to Demonstrate Working of parseInt() Method> // Where NumberFormatException is Thrown> // Main class> public> class> GFG {> >// Main driver method> >public> static> void> main(String args[])> >{> >// NumberFormatException> >String invalidArguments =>''>;> > >// invalidArguments Error empty string> >// passed> >int> emptyString> >= Integer.parseInt(invalidArguments);> > >// The Converted Intger is out of bound> >// Too large to be called Integer> >int> outOfRangeOfInteger> >= Integer.parseInt(>'geeksforgeeks'>,>29>);> > >// Domain Number System> >int> domainOfNumberSystem> >= Integer.parseInt(>'geeks'>,>28>);> >// Print commands on console> >System.out.println(emptyString);> >System.out.println(outOfRangeOfInteger);> >System.out.println(domainOfNumberSystem);> >}> }>

>

>

산출

마찬가지로 문자열을 다른 기본 데이터 유형으로 변환할 수 있습니다.

  1. 파싱롱(): 문자열을 Long으로 구문 분석합니다.
  2. 파싱더블(): 문자열을 double로 구문 분석합니다. 문자열을 정수로 변환하려는 경우 ParseInt()를 사용하지 않고 , 우리는 사용할 수 있습니다 가치() 방법 . 또한 이것은 parseInt()와 유사한 두 가지 변형을 가지고 있습니다.
  3. ParseInt()와 valueOf()의 차이점: parseInt()는 문자열을 구문 분석하고 기본 정수 유형을 반환합니다. 그러나 valueOf()는 Integer 객체를 반환합니다.

메모: valueOf()는 내부적으로parseInt()를 사용하여 정수로 변환합니다.

문자열을 정수로 변환하는 또 다른 접근법

Java의 ParseInt() 메소드 외에도 문자열을 정수로 변환하는 또 다른 메소드가 있습니다. 다음은 valueOf() 메소드의 구현입니다.

valueOf() 메서드

Integer.valueOf() 메서드는 String을 Integer 객체로 변환합니다. 예를 들어 이것을 이해해 봅시다.

위 메소드를 구현하면 다음과 같습니다.

자바




// Java Program to Demonstrate> // Working of valueOf() Method> // Main class> public> class> GFG {> >// Main driver method> >public> static> void> main(String args[])> >{> >// Custom wide-varied inputs to illustrate> >// usage of valueOf() method> >int> decimalExample = Integer.valueOf(>'20'>);> >int> signedPositiveExample = Integer.valueOf(>'+20'>);> >int> signedNegativeExample = Integer.valueOf(>'-20'>);> >int> radixExample = Integer.valueOf(>'20'>,>16>);> >int> stringExample = Integer.valueOf(>'geeks'>,>29>);> >// Print statements> >System.out.println(decimalExample);> >System.out.println(signedPositiveExample);> >System.out.println(signedNegativeExample);> >System.out.println(radixExample);> >System.out.println(stringExample);> >}> }>

MB에서 GB로
>

>

산출

20 20 -20 32 11670324>