본문 바로가기
자바

NumberFormatException - 문자열을 정수형으로 변환할 때 나타나는 오류

by 긴가우딘 2024. 5. 23.

 

    	long answer = 0;
        
        String str = "12345";
        String[] arr = str.split("");
                        
        String sortedStr = Arrays.toString(arr);
        
        answer = Long.parseLong(sortedStr);

Exception in thread "main" java.lang.NumberFormatException: For input string: "[1, 2, 3, 4, 5]"

 

문자열을 정수로 변환하려 할 때 정수형이 아닌 경우 나타나는 오류이다

대괄호([])와 쉼표(,) 가 있기 때문에 나타났다

 

나는 프로그래머스 정수 내림차순으로 배치하기 문제에서 join() 함수를 써서 해결했는데

 	    long answer = 0;
        
        String str = "12345";
        String[] arr = str.split("");
                        
        String sortedStr = String.join("", arr);
        
        answer = Long.parseLong(sortedStr);

→ 출력결과: 12345

 

검색해보니 try-catch를 이용하여 exception 관리를 해줄 수도 있다고 한다

long answer = 0;

String str = "12345"
String[] arr = str.split("");

try{
	String sortedStr = Arrays.toString(arr);
	answer = Long.parseLong(sortedStr);
} catch(NumberFormatException e) {
	System.out.println("문자열을 숫자로 변환할 수 없습니다")
}

 

각각 문제의 요구사항에 따라 맞는 방법을 써주면 될 것 같다