형 변환 정리개발 공부/Java2022. 5. 17. 11:21
Table of Contents
알고리즘 문제를 풀다보니 문제는 풀 수 있겠는데 형변환을 못해서 해결이 안 되는 문제가 꽤 많았다. 그래서 형 변환 문제에 봉착할 때마다 계속해서 추가하며 정리해보려고 한다.
String ↔ int
- Integer의 static 메소드
parseInt
,toString
을 사용할 수 있다.
String → int
// 기본형
int i = Integer.parseInt(str);
// str이 x진수로 작성되었다고 생각하고 int로 변환
int t = Integer.parseInt(str, x);
int → String
String str = Integer.toString(i);
char ↔ int
- 이 경우
(char)
,(int)
로 간단하게 변환 가능- char로 변환하는 경우 int 값을 아스키코드로 인식하여 변환
- int로 변환하는 경우 문자에 해당하는 아스키 코드 값을 반환
int ↔ float/double
- 이 경우도 간단하게
(int)
나(float)
/(double)
로 변환이 가능하다- 정수에서 실수로 변환할 경우 float의 정밀도(7자리)가 낮다는 것을 고려해 값에 오차가 발생하지 않도록 유의해야 한다.
- 실수에서 정수로 변환하는 경우 소수점 이하는 반올림 X, 절삭된다.
String ↔ char[]
- String 클래스의
toCharArray
,valueOf
메서드를 사용할 수 있다.
String → char[]
char[] arr = str.toCharArray();
char[] → String
char[] arr = {'h', 'y', 'u', 'n'};
String str = String.valueOf(arr); // "hyun"
int[] → String
- 먼저 Arrays의 toString 메서드를 통해
“[1, 2, 3]”
과 같은 형태로 만들고 replaceAll을 통해 공백과 기타 불필요한 문자를 지워준다.
int[] arr = {1, 2, 3};
// replaceAll -> 정규표현식 사용, 숫자와 공백을 제외한 모든 문자를 ""로 대체한다. (즉, 삭제한다)
String str = Arrays.toString(arr).replaceAll("[^0-9 ]", ""); // "1 2 3"
// 공백 없이 변환하고자 하는 경우, 숫자를 제외한 모든 문자를 ""로 대체한다.
String str = Arrays.toString(arr).replaceAll("[^0-9]", ""); // "123"
(22.06.03 추가)
- 당연하지만,
Arrays.toString(arr)
이 아닌arr.toString()
을 사용하면 안 된다.toString()
을 사용하기 위해서는 오버라이딩이 필요하기 때문에 의도하지 않은 결과가 나온다.
'개발 공부 > Java' 카테고리의 다른 글
자바 Collector 구조 (feat. groupingBy() 사용법) (0) | 2024.01.14 |
---|---|
내부 클래스에 static이 권장되는 이유 (0) | 2022.04.26 |
함수형 인터페이스와 람다식 (0) | 2022.04.26 |
ISP (인터페이스 분리 원칙) in 스프링 프레임워크 (0) | 2022.04.17 |
자바 기초 여러가지 정리 (0) | 2022.03.27 |
@gmelon :: gmelon's greenhouse
백엔드 개발을 공부하고 있습니다.