자바 프로그래밍의 기본, 형변환(Type Casting)
자바(Java) 프로그래밍을 배우면서 가장 먼저 마주치고, 실무에서도 숨 쉬듯이 사용하는 기초 문법이 바로 형변환(Type Casting)입니다. 자바는 데이터 타입(자료형)에 매우 엄격한 언어이기 때문에, 텍스트 형태의 문자를 숫자로 계산하거나 반대로 숫자를 텍스트로 엮어서 화면에 출력하려면 반드시 서로의 형태를 맞춰주는 작업이 필요합니다.
예를 들어 웹 게시판에서 사용자가 입력한 나이나 상품의 가격, 페이지 번호 등은 시스템상 기본적으로 문자열(String) 형태로 전달됩니다. 이를 더하거나 빼는 수학적 연산을 하려면 반드시 정수형(int)으로 바꿔주어야 하죠.
오늘은 정말 기본적이지만 개발할 때 절대 모르면 안 되는 필수 개념! 자바에서 String을 int로, 반대로 int를 String으로 변환하는 다양한 방법과 주의할 점에 대해 아주 상세하게 정리해 보겠습니다.
1. 문자열을 숫자로 변환하기 (String > int)
텍스트로 된 숫자를 실제 계산이 가능한 정수형 데이터로 바꾸는 방법입니다. 주로 두 가지 메서드를 가장 많이 사용합니다.
방법 A: Integer.parseInt() 사용하기 (가장 보편적인 방법)
가장 대표적이고 실무에서 제일 많이 쓰이는 방법입니다. 괄호 안에 문자열을 넣으면 기본형 정수(primitive int)로 반환해 줍니다.
| String testString = "1004"; // 문자열 형태의 숫자 int testInt = Integer.parseInt(testString); // int형으로 형변환 System.out.println(testInt + 10); // 출력 결과: 1014 (정상적으로 숫자 연산이 됨) |
(참고: 첨부해주신 예시 코드에서 "문자에서숫자로"라는 한글을 숫자로 변환하려고 하면 에러가 발생합니다. 반드시 숫자 형태의 문자가 들어있어야 합니다!)
방법 B: Integer.valueOf() 사용하기
이 방법도 널리 쓰이지만 약간의 차이가 있습니다. parseInt()가 기본형인 int를 반환한다면, valueOf()는 객체형인 Integer 클래스를 반환합니다. (물론 자바의 오토 언박싱 기능 덕분에 일반 int 변수에 담아도 무방하게 작동합니다.)
| String testString = "2026"; int testInt = Integer.valueOf(testString).intValue(); // 정석적인 방법 // int testInt = Integer.valueOf(testString); // 오토 언박싱을 통해 이렇게 써도 무방합니다. |
변환 시 주의사항: NumberFormatException
만약 testString 안에 "123a"처럼 알파벳이 섞여 있거나 공백이 포함되어 있다면 어떻게 될까요? 자바는 이를 숫자로 바꿀 수 없다고 판단하여 NumberFormatException이라는 에러를 뱉고 프로그램이 멈춰버립니다. 따라서 사용자 입력을 변환할 때는 반드시 try-catch 문을 통해 에러 처리를 해주는 습관을 들이는 것이 좋습니다.
2. 숫자를 문자열로 변환하기 (int > String)
이번에는 반대로 계산이 끝난 숫자 데이터를 텍스트로 바꿔야 할 때 사용하는 방법입니다. 화면에 문자와 숫자를 함께 출력하거나 데이터베이스에 문자열로 밀어 넣어야 할 때 자주 쓰입니다.
방법 A: Integer.toString() 사용하기
가장 직관적이고 표준적인 방법입니다. 숫자를 받아서 깔끔하게 문자열 객체로 돌려줍니다.
| int testInt = 16; String testString = Integer.toString(testInt); System.out.println("나이는 " + testString + "살 입니다."); // 출력: 나이는 16살 입니다. |
방법 B: String.valueOf() 사용하기 (강력 추천)
Integer.toString()과 결과는 동일하지만, 실무에서는 이 방법을 조금 더 권장합니다. 그 이유는 파라미터로 null 값이 들어왔을 때, toString()은 NullPointerException 에러를 발생시키지만 String.valueOf()는 에러를 내지 않고 문자열 "null"로 처리해주기 때문에 프로그램이 뻗어버리는 불상사를 막을 수 있기 때문입니다.
| int testInt = 99; String testString = String.valueOf(testInt); |
방법 C: 빈 문자열 더하기 (빠르지만 비추천)
초보자분들이 코드를 짧게 쓰기 위해 자주 사용하는 꼼수(?)입니다. 정수 변수에 빈 문자열("")을 더해주기만 하면 자바가 알아서 전체를 문자열로 합쳐버립니다.
| int testInt = 200; String testString = testInt + ""; // 가장 코드가 짧음 |
코드 길이는 제일 짧지만, 내부적으로 StringBuilder 객체를 새롭게 생성해서 합치는 과정을 거치기 때문에 성능(메모리) 측면에서는 가장 비효율적입니다. 실무에서는 가급적 String.valueOf()를 사용하는 것을 추천합니다.
자바에서 형변환은 코딩의 숨쉬기와 같습니다. 처음에는 Integer.parseInt()나 String.valueOf() 같은 명령어들이 길고 낯설게 느껴질 수 있지만, 몇 번만 타이핑하며 손에 익히고 나면 나중에는 생각하기도 전에 손가락이 먼저 타이핑하고 있는 자신을 발견하게 될 것입니다.
'프로그래밍&DB' 카테고리의 다른 글
| 오라클(Oracle) UPDATE/DELETE 실수 복구하는 방법: 시간을 되돌리는 Flashback Query 완벽 가이드 (0) | 2026.04.08 |
|---|---|
| 자바 class파일 버젼 확인 (0) | 2026.04.08 |
| [Java/자바] List<Map<String, Object>> 특정 Value(값) 기준으로 정렬하기 (feat. 문자열 숫자 정렬 이슈 해결법) (0) | 2026.04.08 |
| TNS-12560: TNS:프로토콜 어댑터 오류 (0) | 2019.10.10 |
| 테이블스페이스에서 확장할 수 없습니다. (0) | 2018.10.04 |