[Java] 타입 변환 (int, double, char, String)

2025. 10. 2. 20:09Dev./Java

728x90
반응형
String s = "123";
int n = Integer.parseInt(s);      // int 변환
double d = Double.parseDouble(s); // double 변환

개념 

형변환(Casting)이란 데이터 타입을 다른 타입으로 바꾸는 것을 의미한다.

Java는 강타입 언어로 타입이 다르면 연산, 대입이 불가능하기때문에 형변환을 반드시 해주어야한다.

종류

자동 형변환(묵시적)

  • 작은 타입 → 큰 타입으로 자동 변환
  • 데이터 손실 가능성이 없는 경우에만 가능
int n = 10;
double d = n; // 자동으로 int → double
System.out.println(d); // 10.0
byte → short → int → long → float → double

강제 형변환(명시적)

  • 큰 타입 → 작은 타입 또는 타입 간 변환이 필요할 때 사용
  • (타입)을 붙여서 명시적으로 변환
double d = 3.14;
int n = (int)d; // 소수점 아래 버림
System.out.println(n); // 3

데이터 손실 가능성이 있기 때문에 주의해야한다.

숫자 <-> String

숫자 -> String

메서드  예시 코드 설명
String.valueOf() String s = String.valueOf(123); ✅ 가장 안전하고 널(null) 처리 가능
Integer.toString() String s = Integer.toString(123); 타입에 맞는 Wrapper 클래스의 toString()
+ "" String s = 123 + ""; 간단하지만 비추천 (성능↓, 가독성↓)
String.format() String s = String.format("%d", 123); 포맷 지정 가능 (%f, %02d 등)
int num = 123;
String s1 = String.valueOf(num);
String s2 = Integer.toString(num);
String s3 = num + "";

숫자 -> String

메서드 예시 코드 변환 대상

메서드  
Integer.parseInt() int
Double.parseDouble() double
Long.parseLong() long
Float.parseFloat() float
Integer.valueOf() Wrapper 객체 반환
  • Integer.valueOf(String) → Integer 객체 생성
Integer obj = Integer.valueOf("123");
System.out.println(obj);       //  123
System.out.println(obj.getClass()); //  class java.lang.Integer

String "123"
       |
       v
Integer.valueOf("123") ----> [Integer 객체]
                               |
                               v
                           .intValue() ----> 123 (기본형)

숫자 <-> char 

숫자 -> char

예시 코드 출력 설명
(char)65 'A' 아스키 코드 65 → 문자 A
(char)(num + '0') '3' 숫자 3 → 문자 '3'
'0' + 1 '1' 문자 연산도 가능

char -> 숫자

예시 코드 출력 설명
'7' - '0' 7 문자 '7' → 정수 7
(int)'A' 65 문자 'A'의 유니코드 값
Character.getNumericValue('9') 9 유니코드 기반 숫자 변환

String <-> char

String -> char

메서드 설명
.charAt(index) 인덱스로 한 글자 추출
.toCharArray() 전체를 문자 배열로 변환
String s = "Java";
char first = s.charAt(0); // 'J'
char[] arr = s.toCharArray(); // {'J','a','v','a'}

char -> String

메서드 설명
String.valueOf(c) 가장 일반적인 방법
Character.toString(c) 동일 기능
"" + c 빠르지만 권장X
char c = 'A';
String s1 = String.valueOf(c);
String s2 = Character.toString(c);
728x90
반응형

'Dev. > Java' 카테고리의 다른 글

[Java] Java 메서드(Method) 와 객체화  (0) 2025.10.14
[Java] HashSet  (0) 2025.10.10
[Java] .equals()와 ==의 차이  (0) 2025.10.03
[Java] for문과 향상된 for문  (0) 2025.09.30
[Java] Java 문자열 String / StringBuilder  (0) 2025.09.29