-
형변환 (type casting)Java 2020. 12. 4. 08:41반응형
문자열 -> 숫자
- String -> int, long, short
String strNum = "255"; int intNum1 = Integer.parseInt(strNum); int intNum2 = Integer.valueOf(strNum); long longNum = Long.parseLong(strNum); short shortNum = Short.parseShort(strNum);
- String -> double, float
String strNum = "255"; double doubleNum = Double.valueOf(strNum); float floatNum = Float.valueOf(strNum);
숫자 -> 문자열
- int -> String
int intNum = 10; String strNum; strNum = String.valueOf(i_num); //String.valueOf()를 사용하여 변환 strNum = Integer.toString(i_num); //Integer.toString()을 사용하여 변환 strNum = ""+intNum; //빈 문자열과 + 연산하여 변환
- double, float -> String
float floatNum = 3.14; double doubleNum = 3.14; String strNum; strNum = String.valueOf(floatNum); strNum = Float.toString(floatNum); strNum = "" + floatNum; strNum = String.valueOf(doubleNum); strNum = Double.toString(doubleNum); strNum = "" + doubleNum;
정수 -> 실수 / 실수 -> 정수
- int -> double, float (주의: 실수형 데이터를 정수형으로 변환하면 소수점 이하는 버림 하여 표현한다.)
//1. primitive type double doubleNum = 3.14; float floatNum = 3.14f; int intNum; intNum = (int)doubleNum; intNum = (int)floatNum; //2. referece type Double doubleNum_r = 3.14; Float floatNum_r = 3.14f; Integer intNum_r; intNum_r = doubleNum_r.intValue(); intNum_r = floatNum_r.intValue();
- double, float -> int
//1. primitive type int intNum = 10; double doubleNum = (double)intNum; float floatNum = (float)intNum; //2. reference type Integer intNum_r = 10; Double doubleNum_r = intNum_r.doubleValue(); Float floatNum_r = intNum_r.floatValue();
문자열 -> 문자배열 / 문자배열 -> 문자열
- String -> char[]
String strObj = "hello"; char[] charArr = strObj.toCharArray();
- char[] -> String
char[] charArr = new char[] {'h','e','l','l','o'}; String strObj = String.valueOf(charArr);
문자열을 구성하는 문자를 하나씩 가져오고자 할 때는 String.charAt() 메서드를 사용한다.
String strObject = "Test String"; for(int i = 0; i < strOjbect.length; i++) { char c = strObject.charAt(i); System.out.println(c); }
문자 -> 정수
- char -> int
char c = '7'; int i = 0; i = (int)c; //문자 7에 대한 아스키코드 값 = 55 i = Character.getNumericValue(c); //문자 7을 정수 7로 변환한 값 = 7 i = c - '0'; //문자 7이 정수 7이 되도록 연산한 값 = 7
char type을 명시적으로 int type으로 변환하는 경우 char type 문자의 아스키 코드 값으로 변환된다.
char type 데이터를 보이는 그대로 정수로 변환하기 위해 아래의 두 가지 방법을 사용할 수 있다.
-Character.getNumericValue() 메서드를 사용
-char type 데이터에서 '0' 만큼 - 연산한 값 사용.
'0'만큼 - 연산하는 경우는 10진수 범위 안에서만 사용가능하다. 즉, 0 ~ 9 사이의 값만 정수로 변환이 가능하다.
Character.getNumericValue() 메서드를 사용하면 A-Z, a-z 값을 10이상의 정수를 표현하는 형태로 정수 변환이 가능하다.
(결론) 0-9 범위를 변환하는 경우 '0'만큼 - 연산을 사용하고 범위를 넘어서는 경우는 getNumericValue() 메서드를 사용하자.
'Java' 카테고리의 다른 글
진법 변환 (0) 2020.12.12 문자열 뒤집기 예제 (0) 2020.12.10 라이브러리를 사용한 배열 정렬 (0) 2020.11.30 Map의 정렬 (0) 2020.11.28 Collection Framework (0) 2020.11.24