[Java] 문자열을 int로 바꾸기_문자열(string)을 정수(integer)로 바꾸는 법

JTI·2022년 11월 12일
0

☕️  Java

목록 보기
31/59
post-thumbnail

Java에서는 문자열을 정수로 변화하기 위해서는 두가지 방법이 있다.

  1. Interger.valueOf()
  2. Interger.parseInt()

💡 Interger.parseInt()


문자열을 기본형 정수(primitive type int)로 리턴

Integer.parseInt(String_varaible)

✏️ 기본 사용방법

예를 먼저 보기 전에, 변환없이 문자열 값과 정수를 추가할 때 어떤일이 발생하는지 살펴보자.

class StrToInt {
	public static void main(String[] args) {
    	String age = "10";
        
        System.out.println(age + 20); //1020
    }
}

age문자열 값이 "10"인 변수를 만들었다.
정수 값 20에 추가하면 30대신 1020이 된다.

하지만, parseInt()를 쓴다면 값이 달라질 것이다.

class StrToInt {
	public static void main(String[] args) {
    	String age = "10";
        
        int ageToInt = Integer.parseInt(age);
        
        System.out.println(ageToInt + 20); // 30
    }
}

age 변수를 정수로 변환하기 위해 parseInt() 메서드에 매개변수로 전달하고 Integer.parseInt(age) 라는 변수에 저장했다. (ageToInt)

그래서 결과값이 1020이 아닌 30으로 나왔다.

✏️ try-catch문 활용

문자열이 유효한 숫자를 포함하지 않는다면 NumberFormatException이라는 예외문구가 뜬다. 그렇게 때문에 문자열을 int로 바꿀때는 항상 try-catch문으로 코드를 감싸서 이 익셉션를 처리해야 한다.

Interger.parseInt()를 써서 문자열을 int로 바꾸는 이 예시를 보자.

String str = "25";
	try {
    	int num = Interger.parseInt(str);
        System.out.println(num); // 25
    }
    catch(NumberFormatException ex) {
    	ex.printStackTrace();
    }

이제 입력값에 유효하지 않은 정수를 대입해본다.

String str = "25T";
	try {
    	int num = Interger.parseInt(str);
        System.out.println(num); // 25
    }
    catch(NumberFormatException ex) {
    	ex.printStackTrace();
    }
[결과값]
java.lang.NumberFormatException: For input string: "25T"
	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
	at java.lang.Integer.parseInt(Integer.java:580)
	at java.lang.Integer.parseInt(Integer.java:615)
	at OOP.StringTest.main(StringTest.java:51)

위에 있는 코드에서는 25T를 정수로 변환하려고 한다. 이는 유효한 입력값이 아니다. 그렇게 때문에 NumberFormatException을 쓰로우하게 된다.

💡 Interger.valueOf()


valueOf() 메서드는 parseInt() 메서드와 동일하게 작동한다.
정수로 변환할 문자열을 매개변수로 사용한다.

✏️ 기본 사용방법

class StrToInt {
	public static void main(String[] args) {
    	String age = "10";
        
        int ageToInt = Interger.valueOf(age);
        
        System.out.println(ageToInt + 20); // 30
    }
}
  • 문자열을 매개변수로 valueOf() 에 전달하고 Interger.valueOf(age) 의 변수 ageToInt 에 저장되었다.
  • 그런 다음 생성된 변수에 20을 추가했다. 따라서 ageToInt + 20 의 결과값은 1020이 아닌 30이 된다.

✏️ try-catch문 활용

String str = "25";
	try {
    	int num = Integer.valueOf(str);
        System.out.println(num); // 25
    }
    catch(NumberFormatException ex) {
    	ex.printStackTrace();
    }

유효하지 않는 값을 넣었을 경우 위 Integer.parseInt() try-catch문 예시와 동일하다.

profile
Fill in my own colorful colors🎨

0개의 댓글