h-i-s-t-o-r-y

[Java] 표준 출력 함수와 출력 형식 - print() / printf() / println() 본문

Java

[Java] 표준 출력 함수와 출력 형식 - print() / printf() / println()

H' 2021. 7. 12. 20:15

▷ 표준 출력 함수

> print() 함수 : 개행을 하지 않는 출력 함수

> printf() 함수 : 출력형식을 지정하여 사용하는 출력 함수

String name = "";
int age = 20;
char grade = 'A';

System.out.printf("이름은 \"%s\" 이고, 나이는 %d 이고, 학점은 '%c' 이고,
    몸무게는 %f 입니다.", name, age, grade, 65.7);

// 결과: 이름은 "홍길동" 이고, 나이는 20 이고, 학점은 'A' 이고, 몸무게는 65.700000 입니다.

> println() 함수

기본 출력문으로 가장 많이 사용된다.

print / printf 함수와 다르게 명령이 종결되면 줄바꿈(개행)한다.

System.out.print("홍길동" + "\n");  //개행
System.out.print("홍길동\n");  //개행
System.out.print("홍길동");
System.out.println();  //개행
System.out.print("홍길동");
System.out.printf("홍길동");

▷ 제어문자 (escape문자)

한 문장 안에서 큰따옴표(\"), 작은따옴표(\'), 줄바꿈(\n) 등을 하게 해주는 문자

System.out.println("이름은 \"" + name + "\" 이고, 나이는 " + age +
    " 이고, 학점은 \'" + grade + "\'이고, 몸무게는 " + 65.7 + "입니다.");

// 결과: 이름은 "홍길동" 이고, 나이는 20 이고, 학점은 'A'이고, 몸무게는 65.7입니다.
// println() 함수는 변수를 출력할 때 문자열 연결 연산자 +를 사용해야 해서 코드가 복잡해진다

▷ printf() 함수의 출력 형식

 printf(%[argument_index$][flags][width][.precision]conversion) 

> argument_index$ - 매개변수 하나로 여러 문자열 출력

System.out.printf("%1$b\\t%1$B\\n", gender);
// 매개변수 gender 하나로 1)소문자 boolean 출력, 2)대문자 BOOLEAN 출력

> flags - 출력 형태

// 10을 10진수, 16진수, 8진수로 출력
int num = 10;
System.out.printf("%d\\n", num);  //10진수 10
System.out.printf("%x\\n", num);  //16진수 a
System.out.printf("%o\\n", num);  //8진수  12
num = -25;
System.out.printf("%d\\n", num);  //-25
System.out.printf("%(d\\n", num);  //(25)
// flag:0 width:10                    *** flag 0의 의미
System.out.printf("[%010d]\\n", num);  //[0000000005]

> width - 출력값의 길이 표현

num = 5;
System.out.printf("[%10d]\\n", num);  //[         5]
System.out.printf("[%-10d]\\n", num); //[5         ]

> .precision - 소수 자리수 표현

double pi = 3.141592;
System.out.printf("원주율 : %10.2f\\n", pi);  //자리수는 10, 그중에서 소수는 2째자리까지
System.out.printf("원주율 : %e\\n", pi);  //지수 
System.out.printf("원주율 : %g\\n", pi);  //범위를 초과하면 지수가수 형태
System.out.printf("원주율 : %a\\n", pi);  //16진수

▷ String.format 함수

내가 원하는 형식으로 변수에 저장하는 함수

String msg = "hi~";
System.out.printf(">> %s <<", msg);
msg = String.format(">> %s <<", msg);
System.out.println(msg);  //출력하면 printf와 같은 결과
// 정수 i를 32비트 자리수로 나타내기
String strA = String.format("%32s", Integer.toBinaryString(a));
// 공백을 0으로 바꾸려면? 문자를 바꿔주는 replace함수
System.out.println(strA.replace(' ', '0'));

 

 

'Java' 카테고리의 다른 글

[Java] 입력받아 출력하기  (0) 2021.07.12
[Java] 진법 변환과 음수 표현  (0) 2021.07.12
[Java] 자료형(Data type)  (0) 2021.07.12
[Java] 변수(Variable)와 상수, 리터럴  (0) 2021.07.12
[공유] 이클립스 자바 단축키  (0) 2021.07.12
Comments