본문 바로가기

JAVA

[ JAVA_IntelliJ ] 자바 형변환 TypeCasting (String, int, Long, double, char)

 

형변환

- 하나의 타입을 다른 타입으로 바꾸는 것 (ex) int -> String, ... )

- 메모리에 할당 받은 바이트 크기가 작은 타입에서 큰 타입으로 변경은 생략가능 

 

참고한 블로그(https://inpa.tistory.com/entry/JAVA-%E2%98%95-%ED%83%80%EC%9E%85-%ED%98%95%EB%B3%80%ED%99%98-%EC%A2%85%EB%A5%98-%EB%B0%A9%EB%B2%95-%F0%9F%92%AF-%EC%B4%9D%EC%A0%95%EB%A6%AC)

 

 

 


1. String

 

 

  • String → int
    int i = Integer.parseInt("95");
    
    System.out.println(i); // 95​

 

  • String → double
    double d = Double.parseDouble("98.8");
    
    System.out.println(d); // 98.8

 

 

  • String  → long
    long l1 = long.parseLong("98.888888");
    
    System.out.println(l1); // 98.888888​

 

 

  • String  →  char
    String s1 = "123456";
    char c1 = s1.charAt(1); // String.charAt(index) : 해당 String의 index값으로 반환됨
    
    System.out.println(c1); // '2'​

 

 

 


2. Int

 

 

  • int → String
    String s1 = Integer.toString(93);
    
    System.out.println(s1); // "93"

 

  • int  → long
    int i = 3;
    long l1 = i.valueOf(i);
    
    System.out.println(l1); // 3​

 

 

  • int → double
    String s2 = Double.toString(98.8);
    
    System.out.println(s2); // "98.8"

 

  • int  → char 
    int REDIX = 10; // redix 10은 십진수이고 hexa는 redix 16입니다.  
    int i = 3 ;
    
    char c = Character.forDigit (i, REDIX); // 기수 또는 숫자 값이 유효하지 않으면 null을 반환
    
    System.out.println(c); // '3'​
int i = 3;
char c1 = (char)(i+'0'); // 아스키코드값 더해주기

System.out.println(l1); // '3'​

 


 

 

3. long

 

 

  • long → String
    Long l1 = 123456789;
    String s1 = Long.toString(l1);
    String s2 = String.valueOf(l1);
    
    System.out.println(s1); // "123456789"
    System.out.println(s2); // "123456789"​

 

 

  • long → int
    Long l1 = 123;
    int i = l1.intValue();
    
    System.out.println(i); // 123​

 

 

  • long → double
    long l1 = 123;
    double d1 = l1.doubleValue();
    
    System.out.println(d1); // 123​

 


 

4. double

 

 

  • double → String 
  • double d1 = 123.45; String s1 = double.toString(d1); System.out.println(s1); // "123.45"

 

 

  • double → int
    double d1 = 123.45;
    int i = (int)Math.round(d1); // d1을 반올림하여 정수로 변환
    
    System.out.println(i); // 123

 

 

  • double → Long
    double d1 = 123.45;
    
    long l1 = (new Double(d1)).longValue();
    long l2 = (long)d1;
    long l3 = Math.round(d1);// 반올림
    
    System.out.println(l1); // 123
    System.out.println(l2); // 123
    System.out.println(l3); // 123

 

5. char

 

 

  • char → String
    char c1 = 'a';
    String s1 = Character.toString(c1);
    
    System.out.println(s1); // "a"

 

  • char → int
    char c1 = '1';
    
    int i1 = Character.getNumericValue(c1);
    int i2 = c1 - '0'; // 아스키코드값 사용
    
    System.out.println(i1); // 1
    System.out.println(i2); // 1