- 오늘은 자료형 간의 형변환과 관련된 글을 작성해보려고 합니다.
형변환이란?
변수나 리터럴의 타입을 다른 타입으로 변환하는것을 '형변환(casting)'이라고 합니다.
Java에서 코딩을 하다보면 어떤 변수형을 다른 변수형으로 강제 치환해야하는 경우가 다수 발생하여 형변환에 대한 예시를 설명하도록 하겠습니다.
- 문자 -> 숫자
- String to Int
- String to Double, Float
- String to Long, Short
- 숫자 -> 문자
- Int to String
- Double Float to String
- 정수 <-> 실수
- Double, Float to Int
- Int to Double, Float
[ 문자 -> 숫자 ]
String to Int
자바의 Integer클래스의 parseInt 함수와 valueOf 함수로 String을 Int로 변환 시켜줄 수 있습니다.
-- Integer.parseInt(String 값)
String fromString = "123";
int toInt1 = Integer.parseInt(fromString);
System.out.println("toInt1:"+toInt1);
// toInt1:123
String to Double, Float
자버의 Long, Double, Float 클래스의 parseDouble,parseFloat 함수와 valueOf 함수로 String을 Double, Float로 변환 시킬 수 있다.
-- Double.parseDouble(String 값)
-- Float.parseFloat(String 값)
String fromString = "125";
double toDouble1 = Double.parseDouble(fromString);
float toFloat1 = Float.parseFloat(fromString);
System.out.println("toDouble1:"+toDouble1);
System.out.println("toFloat1:"+toFloat1);
// toDouble1:125.0
// toFloat1:125.0
String to Long, Short
자바 Long, Short 클래스의 parseLong,parseShort 함수와 valueOf 함수로 변환 시켜줄 수 있다.
-- Long.parseLong(String 값)
-- Short.parseShort(String 값)
String fromString = "127";
long toLong1 = Long.parseLong(fromString);
short toShort1 = Short.parseShort(fromString);
System.out.println("toLong1:"+toLong1);
System.out.println("toShort1:"+toShort1);
// toLong1:127
// toShort1:127
String에서 Int, Double, Float, Long, Short의 valueOf를 사용하면 각 자료형으로 변환이 가능하다.
-- Integer,Double,Float,Long,Short.valueOf(String 값)
String fromString = "123";
int toInt = Integer.valueOf(fromString);
double toDouble = Double.valueOf(fromString);
float toFloat = Float.valueOf(fromString);
long toLong = Long.valueOf(fromString);
short toShort = Short.valueOf(fromString);
System.out.println("toInt:"+toInt);
System.out.println("toDouble:"+toDouble);
System.out.println("toFloat:"+toFloat);
System.out.println("toLong:"+toLong);
System.out.println("toShort:"+toShort);
// toInt:123
// toDouble:123.0
// toFloat:123.0
// toLong:123
// toShort:123
[ 숫자 -> 문자 ]
Int to String
자바 Integer클래스의 toString 함수를 사용하여 숫자를 String으로 변환 할 수 있다.
int fromInt = 123;
String toString = Integer.toString(fromInt);
System.out.println("toString:"+toString);
Double Float to String
자바 Double, Float의 toString 함수를 사용하여 실수를 String으로 변환 할 수 있다.
// Double.toString(String 값)
// Float.toString(String 값)
double fromDouble = 10.15;
float fromFloat = (float) 3.14;
String toString1 = Double.toString(fromDouble);
String toString2 = Float.toString(fromFloat);
System.out.println("toString1:"+toString1);
System.out.println("toString2:"+toString2);
// toString1:10.15
// toString2:3.14
숫자형에서 문자형으로 형변환할때와 마찬가지고 String.valueOf(숫자)를 통해 숫자형에서 문자형으로 변환이 가능하다.
// String.valueOf(숫자형)
int fromInt = 123;
double fromDouble = 10.15;
float fromFloat = (float) 3.14;
String toString1 = String.valueOf(fromInt);
String toString2 = String.valueOf(fromDouble);
String toString3 = String.valueOf(fromFloat);
System.out.println("toString1:"+toString1);
System.out.println("toString2:"+toString2);
System.out.println("toString3:"+toString3);
// toString1:123
// toString2:10.15
// toString3:3.14
[ 정수형 <-> 실수형 ]
정수형과 실수형을 변환하는 방법은 변환하고자 하는 변수 앞에 변경하고 싶은 자료형을 캐스팅 하여 변환 할 수 있다.
double fromIntToDouble = (double) fromInt;
float fromIntToFloat = (float) fromInt;
float fromDoubleToFloat = (float) fromDouble;
int fromDoubleToInt = (int) fromDouble;
int fromFloatToInt = (int) fromFloat;
double fromFloatToDouble= (double) fromFloat;
System.out.println("Int(%d)->Double(%f)".formatted(fromInt,fromFloatToDouble));
System.out.println("Int(%d)->Float(%f)".formatted(fromInt,fromIntToFloat));
System.out.println("Double(%f)->Float(%f)".formatted(fromDouble,fromDoubleToFloat));
System.out.println("Double(%f)->Int(%d)".formatted(fromDouble,fromDoubleToInt));
System.out.println("Float(%f)->Int(%d)".formatted(fromFloat,fromFloatToInt));
System.out.println("Float(%f)->Double(%f)".formatted(fromFloat,fromFloatToDouble));
// Int(123)->Double(3.140000)
// Int(123)->Float(123.000000)
// Double(10.150000)->Float(10.150000)
// Double(10.150000)->Int(10)
// Float(3.140000)->Int(3)
// Float(3.140000)->Double(3.140000)
[ 참조 ]
'개발 > Java' 카테고리의 다른 글
[Java] Json Array 정렬 (0) | 2022.03.06 |
---|---|
[Java] SMTP와 Mail 발송 (0) | 2022.03.06 |
[Java] Stream 활용하기[최종연산] (0) | 2022.02.25 |
[Java] Stream 활용하기[중간연산] (0) | 2022.02.25 |
[Java] Stream 활용하기[생성하기] (0) | 2022.02.25 |