쉽게 쉽게

[Java] 자주 사용하는 타입(String, Int, Char) 변환 방법 본문

Java/Java

[Java] 자주 사용하는 타입(String, Int, Char) 변환 방법

곱마2 2025. 12. 2. 17:16
반응형

▤ 목차

    자주 사용되는 타입 변환 방법에 대해 정리하려고 한다.

    String관련

    1. String to Int

     String num = "12345"
     
     int a = Integer.valueOf(num); /* a = [12345] , Integer 타입 */
     int b = Integer.parseInt(num); /* b =[12345] , int 타입 */

    Integer.valueOf()과 Integer.parseInt()의 차이점

    더보기

    가장 큰 차이점은 Integer.valueOf() 은 Integer 타입으로 반환하고, Integer.parseInt() 은 int 타입으로 반환한다.
    Integer 타입은 기본형 타입(Primitive Type)인 int형의 박싱(boxing) 한 결과이다.

    int와 Integer의 차이는 아래와 같으며, 사용되는 곳에 따라 알맞은 메서드를 사용하는 것이 좋다.

    항목 int Integer
    타입 기본형 참조형
    null 허용 불가 가능
    컬렉션 사용 불가 가능
    성능 더 빠름 더 느림 (객체 생성을 해서)
    메서드 없음 parseInt, compareTo 등 유틸리티 메서드

    즉 요약하면 아래와 같다.

    • 컬렉션에 저장 시 반드시 Integer 사용.
    • 계산 성능이 중요한 경우 int 권장.
    • null 처리가 필요한 경우 Integer 사용.

    https://ssdragon.tistory.com/22

     

    valueOf() 와 parseInt() 의 차이점

    Integer 라는 래퍼클래스(Wrapper Class)가 가지고 있는 메서드들이다. 이 메서드 두 개는 String을 int로 바꿀수 있다. 하지만 차이점이라면 반환값에 있다. Integer.valueOf("10") 은 Integer 타입으로 반환하고,

    ssdragon.tistory.com

    2. String to Char

    String num = "12345";
    
    //단일
    char charAtIndex0 = num.charAt(0); // 1
    
    //배열
    char[] arr  = num.toCharArray(); /* [1,2,3,4,5] */
    // 배열의 모든 요소를 순회하며 출력
    for (int i = 0; i < arr.length; i++) {
        System.out.println("배열[" + i + "]: " + arr[i]);
    }

    3. String[] to Char[][]

    String[] board = {"CCBDE", "AAADE", "AAABF", "CCBBF"};		        
    char[][] map = new char[4][5]; //4줄 5칸의 2차원 배열로 변환 (Stinrg[]의 크기에 맞춰)
            
     // String 배열을 2차원 char 배열로 변환
     for (int i = 0; i < 4; i++) {
        map[i] = board[i].toCharArray();
     }

    4. String to StringBuffer

    String num = "12345"
    
    StringBuffer buffer = new StringBuffer(num); // StringBuffer로 변환
    
    String[] a = buffer.toString().split(""); // StringBuffer to String[]로 변환
    
    System.out.println(a[0]); /* 1 */

    5. String to String[]

    String num = "12345";
    
    String[] a = num.split(""); // String to String[]로 변환
    
    System.out.println(a[0]); /* 1 */

    Int관련

    1. N진수

    int a = 35;
    
    System.out.println(Integer.toBinaryString(a)); //2진수
    System.out.println(Integer.toString(a,2)); //2진수
    System.out.println(Integer.toString(a,3)); //3진수
    System.out.println(Integer.toString(a,4)); //4진수
    System.out.println(Integer.toString(a,5)); //5진수
    ...

    2. Int to String

    int number = 12345;
    // 1. String.valueOf() 사용
    String str1 = String.valueOf(number); // "12345"
    
    // 2. Integer.toString 사용
    String str2 = Integer.toString(number); // "12345"
    
    // 3. 문자열 결합
    String str3 = "" + number; //"12345"

    3. Int to Char

    int number = 7; 
    
    // 1. '0' 사용 (숫자가 0~9 일 때 사용가능)
    char char1 = (char) (number + '0'); //'7'
    
    // 2. Character.forDigit() 사용
    char char2 = Character.forDigit(number, 10); // '7'
    
    // ----------------- Char[] 배열로 변환
    int number = 12345;
    
    // 1. int -> String -> char[]로 변환
    String str = String.valueOf(number); // str은 "12345"
    char[] charArray = str.toCharArray();
    
    // 2. String.format()을 사용
    // int -> String -> char[]로 변환
    // "%d"는 10진수 정수를 의미
    String formattedStr = String.format("%d", number); // formattedStr은 "12345"
    char[] charArray = formattedStr.toCharArray();

    4. Int to StringBuilder 또는 StringBuffer

    int number = 54321;
    // StringBuilder 사용
    StringBuilder sb = new StringBuilder();
    sb.append(number);
    String str4 = sb.toString(); // "54321"
    
    // StringBuffer 사용
    StringBuffer sbf = new StringBuffer();
    sbf.append(number);
    String str5 = sbf.toString(); // "54321"

    Char관련

    1. Char to String

    char c = 'A';
    String result;
    
    // 1. 문자열 연결(Concatenation) 사용
    result = c + ""; //A
    
    // 2. String.valueOf() 사용
    result = String.valueOf(c); //A
    
    // 3. Character.toString() 사용
    result = Character.toString(c); //A

    2. Char to Int

    char num = '5';
    
    // 1. getNumericValue() 사용
    int value1 = Character.getNumericValue(num); // 5
    
    // 2. 빼기 연산 사용
    int value2 = num - '0'; // 5
    잘못된 내용이 있다면 지적부탁드립니다. 방문해주셔서 감사합니다.

     

    반응형