자료형 변환(형변환) 모음

cotchan·2021년 7월 26일
1
post-custom-banner
  • 아래 출처를 바탕으로 본인의 공부 목적으로 작성한 글입니다.
  • 계속 업데이트할 예정입니다.

1. String

  • 임의의 다른 자료형을 String으로 만들 때는 String.valueOf() 연산을 적용합니다.

1-1. char[] to String

  • String.valueOf()
  • String.valueOf() 메소드에 매개변수로 char[]를 넣으면, String으로 바로 변환해줍니다.
char[] ary = {'a','b','c','d','e'};
String arrayString = String.valueOf(ary);
System.out.println(arrayString);

  • String 생성자
  • char 배열을 String 생성자의 인자로 넣고 String을 생성하면 됩니다.
public void charArrayToString1() {
    char[] charArray = { 'H', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l', 'd' };
    String str = new String(charArray);
    System.out.println(str);
}

1-2. char to String

  • 한 글자 char에 대해서 String 연산을 적용해야 할 때
  • String s = char c + "";
//example1
char c = 'a';
String oneLetterString = c + "";
//example2
for (int idx = 0; idx < source.length(); ++idx)
{
    String target = source.charAt(idx) + "";
    
    if (target.compareTo("-") == 0 || target.compareTo("_") == 0 || target.compareTo(".") == 0)
    {
        //...
    }
}

2. Long & Integer


2-1. Long to int

  • int Long.valueOf(${long value}).intValue();연산을 통해서 형변환이 가능합니다.
Long oper = Long.parseLong(oper[2]);

int intValue = Long.valueOf(oper).intValue();

3. int to char


3-1. 아스키 오프셋 활용

  • 아스키 오프셋 65
  • 타입 캐스팅을 사용해서 char result = (char)(intValue + 65) 를 만드는 방식입니다.
public class SimpleTesting {
    static final int ASCII_OFFSET = 65;
    public static void main(String[] args) {
        int node = 0;
        int alphaValue = node + ASCII_OFFSET;
        char alpha = (char)alphaValue;
        System.out.println(alpha);
        //'A'
    }
}

3-2. Integer.toString 사용

  1. intstring
  2. string.charAt(0)char
public class SimpleTesting {
    public static void main(String[] args) {
    int value_int = 1;
    char value_char = Integer.toString(value_int).charAt(0);
    System.out.println(value_char);
    //1
    }
}

3-3. Character.forDigit

  • 10진수, 16진수 표현과 관련된 메서드입니다.
    • 특정 진법에서 사용하는 숫자에 대한 문자 표현이 필요할 때 사용합니다.
    • 기수 또는 숫자값이 유효하지 않으면 null을 반환합니다.
    • 아래와 같이 사용하면 10진법에서 여섯번째 숫자를 문자로 리턴합니다.
public class SimpleTesting {
    public static void main(String[] args) {
        //radix 10 is for decimal number, for hexa use radix 16 
        int radix = 10; 
        int value_int = 6;
        char value_char = Character.forDigit(value_int , radix);
        System.out.println(value_char);
				//6
    }
}
  • 16진수 값을 얻으려면 두 번째 인수값으로 16을 주면 됩니다.
public class SimpleTesting {
    public static void main(String[] args) {
        //radix 16 is for Hexa number
        int radix = 16; 
        int value_int = 12;
        char value_char = Character.forDigit(value_int , radix);
        System.out.println(value_char);
        //c
    }
}

profile
https://github.com/cotchan
post-custom-banner

0개의 댓글