Java printf, 특수문자

최지혜·2022년 11월 30일
0

java

목록 보기
29/33

자바에서 제공하는 특수 문자

\n 한 줄 띄움

\t 일정 간격 띄움

\" 쌍따옴표 출력
System.out.println("\"Hello,Java\"");
결과: "Hello,Java"

Java printf 출력 서식

%d 정수

%f 실수

%d 문자

%s 문자열

String format 문법 형식

순서: %[argument_index$][flags][width]conversion

문법 설명

1) 필수값:

%와 conversion 으로 무조건 있어야 함
"conversion": 표현 할 데이터의 타입으로, s(문자열), d(정수), x(16진수), o(8진수), f(실수)
ex) %s, %d, %x, %o, %f
ex) System.out.println(String.format("%s, %s", "KOREA", "JAPAN"));

2) 옵션값:

  • [argument_index$][flags][width] 는 생략 가능

[argument_index] 옵션

들어갈 파라미터의 인덱스: 1부터 시작
아래를 보면 21와 1를 각 각 추가했는데 2는두번째문자열인"JAPAN"을의미하고,1는 두번 째 문자열인 "JAPAN"을 의미하고, 1는 첫 번째 "KOREA"를 의미하기 때문에 출력 순서가 바뀐 것

ex) 길이를 10으로 지정 (width + argument_index 옵션)
System.out.println(String.format("%2$10s%1$10s", "KOREA", "JAPAN"));
JAPAN KOREA

[flags] 옵션

[flags]는 [argument_index]와 [width]사이에 위치
'-' flag를 사용하면 출력되는 문자열이 왼쪽으로 정렬
'-' flag를 빼면 이전 예제와 같이 오른쪽으로 정렬

System.out.println(String.format("%-10s%-10s", "KOREA", "JAPAN"));
KOREA JAPAN

System.out.println(String.format("%10s%10s", "KOREA", "JAPAN"));
KOREA JAPAN

[width] 옵션

conversion앞에 위치하는 [width]를 사용한 샘플

// 길이를 10으로 지정 (width 옵션)
System.out.println(String.format("%10s%10s", "KOREA", "JAPAN"));
KOREA JAPAN

conversion

1. %d : 10진수(정수)

  • 정수는 %뒤에 d를 붙여서 사용
    System.out.println(String.format("%d, %d", 12345, 67890));
    12345, 67890
    System.out.println(String.format("%10d%10d", 12345, 67890));
    12345 67890
    System.out.println(String.format("%2$10d%1$10d", 12345, 67890));
    67890 12345
    System.out.println(String.format("%-10d%-10d", 12345, 67890));
    12345 67890

  • 0 flag를 사용해서 공백 부분은 0으로 채우기
    // 0 flag는 정수나 실수를 대입할때만 사용가능하며 문자열 등에는 사용할 수 없음.
    System.out.println(String.format("%010d%010d", 12345, 67890));
    00000123450000067890

  • 정수, 실수에 사용 가능한 몇가지 flag. + flag를 사용한 샘플
    //부호를 표시하면서 남는 자리수는 0으로 채우는 샘플
    System.out.println(String.format("%+10d%+10d", 100, -200));
    +100 -200

  • '(' 를 사용하면 음수인 경우만 괄호가 사용
    System.out.println(String.format("%(10d%(10d", 100, -200));
    100 (200)

  • ',' flag를 사용한 샘플
    // ','를 사용하면 해당 국가에서 사용되는 기호로 숫자를 그룹지어 줌.
    대부분 콤마가 사용됨.
    System.out.println(String.format("%,10d%,10d", 10000, -20000));
    10,000 -20,000

2. %x : 16진수

  • x를 사용하면 16진수를 출력
    // 아래 샘플에서는 10진수 2047이 16진수로 변환되서 출력
    System.out.println(String.format("%10x%10x", 2047, 2047));
    7ff 7ff

  • X를 대문자로 사용하면 16진수도 대문자로 출력
    System.out.println(String.format("%10X%10X", 2047, 2047));
    7FF 7FF

3. %o : 8진수

  • o를 사용하면 8진수를 출력. 아래 샘플에서는 10진수 2047이 8진수로 변환되서 출력
    System.out.println(String.format("%10o%10o", 2047, 2047));
    3777 3777

4. %f : 실수

  • 실수는 f를 사용
    // 사용법은 정수와 거의 같고 .을 사용하면 정밀도를 지정
    // 아래 샘플에서는 정밀도를 소숫점 두 자리까지 지정 했는데 .99가 아니라 .00으로 출력되는 이유는 반올림 되었기 때문
    System.out.println(String.format("%10.2f%10.2f", 100000.999f, 200000.999f));
    100001.00 200001.00
profile
매일 성장하는 개발자

0개의 댓글