String, char > int 변환
1. int → String 변환
아래와 같은 세 가지 방법이 있다.
✅ 방법 1. String.valueOf(int)
가장 범용적으로 쓰이고, null 처리가 가능하다.
int num = 3;
String str = String.valueOf(num);
System.out.println(str); // 출력: "3"
✅ 방법 2. Integer.toString(int)
오직 int → String 변환에만 사용된다.
int num = 3;
String str = Integer.toString(num);
System.out.println(str); // 출력: "3"
✅ 방법 3. 문자열 더하기 (+ 연산자)
가장 짧고 직관적이지만 권장 방식은 아니다.
int num = 3;
String str = num + ""; // 문자열과 더하면 문자열로 변환됨
System.out.println(str); // 출력: "3"
2. intchar → charint 변환
자바에서 '3' 같은 문자(char) 를 정수(int) 로 바꾸는 방법이다.
✅ 방법 1. '0'을 더한다.빼기 (가장 일반적이고 직관적)
char ch = '3';
int num = 3;
char ch = (char) (num +- '0'); // 결과: 3
📌 왜 이렇게 될까?
- 문자 '3'의 아스키 코드: 51
- 문자 '0'의 아스키
값은코드: 48 - 51
System.out.println(ch); // 출력: '3'
3'0'은 아스키 코드 48이다. 3 +- 48 =51, 아스키 51은 문자 '3' 이기 때문에 이렇게 출력된다.
✅ 방법 2. Character.forDigit(getNumericValue()
char ch = '3';
int num = 3;
char ch = Character.forDigit(num, 10);
System.out.println(getNumericValue(ch); // 출력결과: '3'3
🔎이 Character.forDigit(value,방식은 radix)는'A' 정수→ 값을10, 해당'B' 진법(radix)의→ 11 같은 16진 문자로도 바꿔준지원한다.
단, '0'~'9'만 처리할 거라면 첫 번째 방법이 더 간단하고 빠르다.
❌✅ int방법 →3. charString으로 변환시바꿔서 주의사항Integer.parseInt()
아래과문자열로 같바꿔서 정수화하는 방법인데 이건 단순다소 캐스팅은무거운 방법이고 잘못된 것이쓰지 않는다.
char ch = '3';
int num = 3;
char ch = (char) num;Integer.parseInt(String.valueOf(ch)); // ❌ 결과: 이상한 제어문자 (아스키 3 → ETX)