JAVA 값이 숫자인 경우에는 Integer 타입으로 변환 하기

문자열에는 문자와 숫자, 기호 등을 입력할 수 있습니다.

String 변수를 Integer로 변환하고 싶은 경우, 값에 문자가 들어가 있으면 에러가 발생합니다.

try {} catch{}로 예외 처리를 따로 작성하면 에러가 발생한 다른 처리를 하도록 할 수도 있습니다.

이번에는 정규 표현식을 사용하여 String 변수에 값이 숫자만 있을 경우 Integer 타입으로 변환하는 예제를 보도록 하겠습니다.

public class Main {

	public static void main(String[] args) {
		String str1 = "10";
		String str2 = "abc";
		String str3 = "a10b";
		String str4 = "1a0b";

		// 숫자 패턴 정규 표현식 설정
		String regex = "^[0-9]*$";

		Pattern p = Pattern.compile(regex);

		// 값에 숫자만 있는지 확인
		// 숫자만 있는 경우에는 TURE를 반환
		Matcher m1 = p.matcher(str1);
		Matcher m2 = p.matcher(str2);
		Matcher m3 = p.matcher(str3);
		Matcher m4 = p.matcher(str4);

		// 정규식 체크 결과가 TRUE인 경우에만 Integer 타입으로 형변환
		if(m1.find()) {
			System.out.println(Integer.parseInt(str1));
		}

		if(m2.find()) {
			System.out.println(Integer.valueOf(str2));
		}

		if(m3.find()) {
			System.out.println(Integer.parseInt(str3));
		}

		if(m4.find()) {
			System.out.println(Integer.valueOf(str4));
		} 
	}

}

 

결과

10

 

변수 str1 에만 값이 숫자로 되어있기 때문에 str1만 Integer 타입으로 형변환을 해서 출력을 하고 있습니다.

나머지 변수에는 문자만 들어있거나 숫자와 문자가 섞여있기 때문에 정규 표현식 결과가 FALSE를 반환합니다.

단, 기호 또는 +기호를 포함한 값도 Integer 타입으로 변환하고 싶은 경우에는 정규 표현식에 -또는 + 기호를 지정해주면 됩니다.

댓글