String, char > int 변환
1. int → String 변환
자바에서 문자열(String) '123'을 정수(int) 로 바꾸는 방법이다.
✅ 방법 1. Integer.parseInt()
가장 많이 쓰이는 방법이다.
String str = "123";
int num = Integer.parseInt(str);
System.out.println(num); // 출력: 123
- 문자열이 숫자 형태여야만 정상 작동한다.
- "12a3"처럼 숫자가 아닌 문자가 포함되면 예외가 발생한다.
✅ 방법 2. Integer.valueOf()
Integer.valueOf()는 Integer 객체를 반환하지만, 필요하면 int로 자동 변환된다.
String str = "123";
int num = Integer.valueOf(str); // 반환 타입은 Integer (객체)
int primitive = Integer.valueOf(str); // 자동 언박싱됨
✅ 방법 3. 예외 처리 (안전하게 변환하기)
사용자가 입력한 문자열이 숫자가 아닐 수도 있으니 예외 처리를 하는 것이 권장된다.
String str = "123";
try {
int num = Integer.parseInt(str);
System.out.println(num);
} catch (NumberFormatException e) {
System.out.println("유효한 숫자가 아닙니다.");
}
❌ 이런 건 에러가 난다.
String str = "12a3";
int num = Integer.parseInt(str); // ❌ NumberFormatException
2. char → int 변환
자바에서 '3'과 같은 문자(char) 를 정수(int) 로 바꾸는 방법이다.
✅ 방법 1. '0'을 빼기 (가장 일반적이고 직관적)
char ch = '3';
int num = ch - '0'; // 결과: 3
📌 왜 이렇게 될까?
- 문자 '3'의 아스키 코드: 51
- 문자 '0'의 아스키 코드: 48
- 51 - 48 = 3
✅ 방법 2. Character.getNumericValue()
char ch = '3';
int num = Character.getNumericValue(ch); // 결과: 3
이 방식은 'A' → 10, 'B' → 11 같은 16진 문자도 지원한다.
단, '0'~'9'만 처리할 거라면 첫 번째 방법이 더 간단하고 빠르다.
✅ 방법 3. String으로 바꿔서 Integer.parseInt()
문자열로 바꿔서 정수화하는 방법인데 이건 다소 무거운 방법이고 잘 쓰지 않는다.
char ch = '3';
int num = Integer.parseInt(String.valueOf(ch)); // 결과: 3