ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • etc) 백슬래시 출력, 삼항연산자, printf, 타입 간 변환방법, 아스키코드
    수정중/수정중2 2023. 1. 10. 17:33

    1. 큰 따옴표(")나 백슬래시(\)는 단독으로 써서 출력할 수가 없다.

    반드시 Escape Sequence를 실행해서 백슬래시와 문자 하나를 결합해야 한다.

     

    백슬래시를 출력하려면  ( " \\ " ) 로 해줘야 백슬래시 ( \ ) 하나가 출력되며, 백슬래시 두 개를 출력하고 싶은경우 ( " \\\\ " ) 로 해주어야 2개가 출력된다. 

     

     

    2. 삼항연산자

    (조건문) ? (true일 때의 연산) : (false일 때의 연산);

    System.out.print((y%4==0)?((y%400==0)?"1":(y%100==0)?"0":"1"):"0");

     

     

     

     

    3 printf

    : 지시자를 이용해서 변수의 값을 여러 가지 형식으로 변환하여 출력

    *줄바꿈하려면 지시자 '%n' 넣어주기

     

    ex)

    System.out.printf("age:%d", age);
    -> System.out.printf("age:%d", 14);
    -> System.out.printf("age:14");

    출처: 자바의 정석

     

    4-1) 소수점 아래자리 정해주기 (왜? %f는 소수점 아래 6자리까지만 출력해줘서)

    %전체자리.소수점아래자리f

     

    ex) System.out.printf("d=%14.10f", d);  // 전체 14자리 중 소수점 아래 10자리

     

    4-2) 지시자 '%s'에도 숫자를 추가해주면 원하는 만큼의 출력공간을 확보하거나 문자열의 일부만 출력할 수 있음

    System.out.printf("[%s]%n", url);          // 문자열의 길이만큼 출력공간을 확보

    System.out.printf("[%20s]%n", url);      // 최소 20글자 출력공간 확보(우측정렬)

    System.out.printf("[%-20s]%n", url);     // 최소 20글자 출력공간 확보(좌측정렬)

    System.out.printf("[%.8s]%n", url);       // 왼쪽에서 8글자만 출력

     

    4-2-1) 다른방법

    출처: www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=2824

     

    %2d 

    2자리보다 작으면 여백을 추가해서 2자리를 확보 ex) _1 (_는 0x20, 스페이스, 여백을 의미)

    2자리보다 크면 그대로 출력 ex) "12345"

     

    %02d 

    2자리보다 작으면 '0'을 추가해서 2자리를 확보 ex) 01

    2자리보다 크면 그대로 출력 ex) "12345"

     

    %-2d (왼쪽 정렬)

    2자리보다 작으면 여백을 추가해서 2자리를 확보 ex) 1_ (_는 0x20, 스페이스, 여백을 의미)

    2자리보다 크면 그대로 출력 ex) "12345"

     

    %+2d

    양수인경우 '+'를 붙여줌

     

     

    5. 타입 간의 변환방법

    출처: 자바의 정석 기초편

     

    1) 숫자를 문자로 변환 - 숫자에 '0'을 더한다.

    (char)(3 + '0') -> '3'

     

    2) 문자를 숫자로 변환 - 문자에서 '0'을 뺀다.

    '3' - '0' -> 3

     

    3) 숫자를 문자열로 변환 - 숫자에 빈 문자열("")을 더한다.

    3+ "" -> "3"

     

    4) 문자열을 숫자로 변환 - Integer.parselnt() 또는 Double.parseDouble()을 사용한다.

    Integer.parseInt("3") -> 3

    Double.parseDouble("3.14") -> 3.14

     

    5) 문자열을 문자로 변환 - charAt(0)을 사용한다.

    "3".charAt(0) - > '3'

     

    6) 문자를 문자열로 변환 - 빈 문자열("")을 더한다.

    '3' + "" -> "3"

     

    class main
    public static void main(String args[]) {
    	String str="3";
        
        System.out.println(str.charAt(0) - '0') ;   // 문자에서 0빼면, 문자->숫자로 변경됨. 따라서 3출력
        System.out.println('3' - '0' +1);            //4
        System.out.println(Integer.parseInt("3")+1); // 4
        System.out.println("3"+1);                   // 31
        System.out.println((char)(3+'0'));           // 숫자를 문자로 변환함. 3출력

     

     

    6. 아스키코드

    System.out.println('A'+'B')  -> 131

    왜? char+char - > int +int -> int의 과정을 통해 최종결과는 int형 정수 값이 된다. 'A'와 'B'의 문자코드의 값은 각각 65와 66이다.

     

    '수정중 > 수정중2' 카테고리의 다른 글

    Object 클래스(3) - clone()  (0) 2023.02.03

    댓글

Designed by Tistory.