Java에서 문자열을 int로
자바에서는 문자열을 연산하다 보면 문자열로 표현된 숫자를 정수형으로 변환해야 할 때가 있다. 우리는 일반적으로 문자열에 대해 광범위하고 유연한 작업 세트를 사용할 수 있기 때문에 이렇게 합니다. Java에서 문자열을 정수로 변환하는 데 일반적으로 사용되는 방법은 다음과 같습니다. 파싱인트 ()의 문자열 클래스 .
이번 글에서는 자바에서 String을 int로 변환하는 방법을 알아보겠습니다.
Java 문자열을 int로 변환하는 프로그램
작동하는 parsInt() 메소드에 익숙해지기 위해 바로 예제를 살펴보겠습니다.
자바
// 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);> > }> }> |
산출
20 20 -20 32 11670324
Java의 ParseInt() 메소드
이 방법에는 두 가지 변형이 있습니다.
- parsInt(문자열 s): 이 함수는 문자열 인수를 부호 있는 10진수 정수로 구문 분석합니다.
- 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)으로 고려될 수 있습니다.
예외 발생
- 번호형식예외 다음 상황 중 하나가 발생하는 경우 이 메서드에 의해 발생됩니다.
두 변형과 관련된 특정 핵심 사항을 기억하십시오.
- 문자열은 null이거나 길이가 0일 수 있습니다.
- 문자열이 나타내는 값은 int 유형의 값이 아닙니다.
- 특히 함수의 parsInt(String s, int radix) 변형의 경우:
- 두 번째 인수 기수는 Character.MIN_RADIX보다 작거나 Character.MAX_RADIX보다 큽니다.
- 문자열의 모든 문자는 지정된 기수의 숫자가 아닙니다. 단, 첫 번째 문자는 문자열이 다음과 같은 경우 빼기 기호 '-'('u002D') 또는 더하기 기호 '+'('u002B')일 수 있습니다. 길이 1보다 길다
- 문자열 앞에 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 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);> > }> }> |
산출
마찬가지로 문자열을 다른 기본 데이터 유형으로 변환할 수 있습니다.
- 파싱롱(): 문자열을 Long으로 구문 분석합니다.
- 파싱더블(): 문자열을 double로 구문 분석합니다. 문자열을 정수로 변환하려는 경우 ParseInt()를 사용하지 않고 , 우리는 사용할 수 있습니다 가치() 방법 . 또한 이것은 parseInt()와 유사한 두 가지 변형을 가지고 있습니다.
- 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);> > }> }> |
산출
20 20 -20 32 11670324