형 변환 정리

2022. 5. 17. 11:21·개발 공부/Java

알고리즘 문제를 풀다보니 문제는 풀 수 있겠는데 형변환을 못해서 해결이 안 되는 문제가 꽤 많았다. 그래서 형 변환 문제에 봉착할 때마다 계속해서 추가하며 정리해보려고 한다.

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
'개발 공부/Java' 카테고리의 다른 글
  • 자바 Collector 구조 (feat. groupingBy() 사용법)
  • 내부 클래스에 static이 권장되는 이유
  • 함수형 인터페이스와 람다식
  • ISP (인터페이스 분리 원칙) in 스프링 프레임워크
gmelon
gmelon
백엔드 개발을 공부하고 있습니다.
  • gmelon
    gmelon's greenhouse
    gmelon
  • 전체
    오늘
    어제
    • 분류 전체보기 (91)
      • 개발 공부 (28)
        • Java (6)
        • Spring (10)
        • 알고리즘 (11)
        • 기타 (1)
      • 프로젝트 (12)
        • [앱] 플랭고 (4)
        • 졸업 프로젝트 (8)
      • 스터디 (0)
        • 자바 (30)
      • 기록 (15)
        • 후기, 회고 (9)
        • SSAFYcial (5)
        • 이것저것 (1)
      • etc. (6)
        • 모각코 (6)
  • 블로그 메뉴

    • 홈
    • 방명록
    • github
    • 스크랩
  • 인기 글

  • 태그

    Collector groupingBy()
    한글프로그래밍언어
    groupingBy mapping
    groupingBy()
    java
    Java Collector
    싸피 회고
    자바 Collector
    자바
    2024 상반기 회고
    태초마을이야
    2024 회고
    AWS 프리티어 종료
    졸업프로젝트
    프리티어 종료
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
gmelon
형 변환 정리
상단으로

티스토리툴바