Everyday Dev System

0530_TIL : printf() 사용법 본문

내배캠 주요 학습/TIL : Today I Learned

0530_TIL : printf() 사용법

chaeyoung- 2023. 5. 30. 11:09

 

 

# 문제점 : 번호 다음에 나오는 메뉴(Burger, Frozen Custart, Drinks, Beer)이 정리가 안돼서 출력이 되고 있다.

메뉴 이름을 출력하는 부분에 일정한 크기를 지정해서 열을 맞추어 정렬해야 한다.

 

# 시도1 : 

1. \t을 사용

        System.out.println("\t" + menuName + "\t : " + menuContent);

결과 : 4번의 공백만 앞뒤로 들어가고 정렬이 되지 않았다.

 

# 시도2 : 

2. printf() 정규식 활용

해당 문제를 해결할 수 있는 방법이 있지 않을까 구글링을 하였고,

아래 두 사이트를 참고했다.

 

 

참고: https://keep-cool.tistory.com/15

 

[Java 10] 자바의 출력문(println, printf)

No. 01 출력 - println() 개발자가 열심히 프로그래밍을 하더라도 결과를 볼 수 있는 명령문을 실행하지 않으면 절대 직접 눈으로 볼 수 없다. 결과를 봐야 이 프로그램이 내가 생각한대로 잘 돌아가

keep-cool.tistory.com

-> println이 아닌 printf의 정규식인데 처음에 println에 시도를 해봤는데 안돼서 이것저것 바꿔가며 시도했다.

아래와 같은 시도들을 10번을 넘게 해보면서 출력이 원하는 대로 되지 않아 정규식을 다시 검색했다.

        System.out.println("%20ns".menuName);
        System.out.println("%s20n"+menuName);
        
        // printf인 것을 깨닫고 아래와 같이 시도해보았다.
        System.out.printf("%s20n",menuName);
        System.out.printf("%s%20n",menuName);

 

참고 : https://bibi6666667.tistory.com/136

 

[Java] .printf() 사용법 익히기 - 콘솔창 출력 왼쪽정렬, 오른쪽정렬, 간격 맞추기

keep-cool.tistory.com/15 https://althathatha.tistory.com/12 https://three-pleasure.tistory.com/251 세 분의 글을 참고하여 공부했습니다. 감사합니다🙇‍♀️ System.out.printf() 사용법 익히기 .print();, .println(); 이 아닌 .pr

bibi6666667.tistory.com

-> java printf() 사용법을 키워드로 검색해보니 더 자세히 나와있었다.

 

printf에서 유용한 지시자

%d : 정수형(10진수) %s  : 문자열 형식 (string) %n  : 줄바꿈 (Enter 역할)
%f  : 실수형 %c  : 문자 형식 (char) %b  : true / false 형식

 

%3d : 최대 3자리의 정수 출력, 출력 후 남는 자리는 공백, 오른쪽 정렬

%03d : 위와 같이 최대 3자리 정수 출력, 출력 후 남는 자리는 0, 오른쪽 정렬

%-4s  : 최대 4자리의 문자열 출력, 남는 자리는 공백, 왼쪽 정렬

 

 

 

# 문제해결 :

    // 메뉴 출력
    public void printMenu(){
        System.out.printf("%-20s | %-50s",menuName,menuContent);
        System.out.println();
    }