웹사이트 검색

Java printf() - 형식화된 문자열을 콘솔에 인쇄


이전 자습서에서 Java println() 메서드에 대해 이미 논의했습니다. 오늘 우리는 printf() 메서드와 다양한 구현에 대해 자세히 논의할 것입니다. 준비가 된. 얻다. 세트. 가다!

자바 프린트프()

  • printf() 메서드는 C뿐만 아니라 Java에도 있습니다.
  • 이 메서드는 PrintStream 클래스에 속합니다.
  • 다양한 형식 지정자를 사용하여 형식이 지정된 문자열을 인쇄하는 데 사용됩니다.

통사론

다음은 printf() 메서드에 사용할 수 있는 구문입니다.

System.out.printf(string);
System.out.printf(format, arguments);
System.out.printf(locale, format, arguments);

첫 번째는 서식을 지정하지 않으며 println() 메서드와 같습니다.

System.out.format()System.out.printf() 메소드와 동일합니다.

String.format()과 System.out.printf()의 차이점

  1. String.format()은 형식이 지정된 문자열을 반환합니다. System.out.printf()는 또한 형식이 지정된 문자열을 콘솔에 출력합니다.
  2. printf()java.util.Formatter 클래스를 사용하여 형식 문자열을 구문 분석하고 출력을 생성합니다.

형식 지정자

printf에 사용할 수 있는 형식 지정자를 살펴보겠습니다.

  • %c 문자
  • %d 십진수(정수) 숫자(밑 10)
  • %e 지수 부동 소수점 수
  • %f 부동 소수점 수
  • %i 정수(10진법)
  • %o 8진수(8진수)
  • %s 문자열
  • %u 부호 없는 10진수(정수)
  • %x 16진수(기본 16)
  • %t 형식 날짜/시간
  • %% 퍼센트 기호 인쇄
  • \\% 백분율 기호 인쇄

참고: %n 또는 printf()에서 줄 구분 기호로 사용됩니다.

이스케이프 문자

다음은 printf()에서 사용할 수 있는 이스케이프 문자입니다.

  • 백스페이스
  • 다음 줄 첫 번째 문자는 현재 줄 마지막 문자 오른쪽에서 시작합니다.
  • 개행
  • 캐리지 리턴
  • \ 백슬래시

형식 지정자 전체 구문

확장 집합을 사용하여 형식 지정자의 전체 구문을 살펴보겠습니다.

%<flags><width><.precision>specifier

플래그는 오른쪽 정렬의 경우 +로, 왼쪽 정렬의 경우 -로 설정할 수 있습니다. 다음으로 Jshell을 실행하고 printf()를 사용하세요!

숫자 서식

예를 들면 다음과 같습니다.

|  Welcome to JShell -- Version 12.0.1
|  For an introduction type: /help intro

jshell> int x = 10
x ==> 10

jshell> System.out.printf("Formatted output is: %d %d%n", x, -x)
Formatted output is: 10 -10

몇 가지 정밀 형식 지정을 사용해 보겠습니다.

jshell> float y = 2.28f
y ==> 2.28

jshell> System.out.printf("Precision formatting upto 4 decimal places %.4f\n",y)

Precision formatting upto 4 decimal places 2.2800

jshell> float z = 3.147293165f
z ==> 3.147293

jshell> System.out.printf("Precision formatting upto 2 decimal places %.2f\n",z)

Precision formatting upto 2 decimal places 3.15

보시다시피 두 번째 경우에는 다음 소수점으로 반올림됩니다.

너비 지정자, 정렬, 0으로 채우기

이 섹션에서는 이들 각각에 대한 세 가지 예를 볼 수 있습니다.

jshell> System.out.printf("'%5.2f'%n", 2.28);
' 2.28'

보시다시피 너비 지정자는 5자 너비를 할당합니다. 콘텐츠는 기본적으로 오른쪽 정렬됩니다. 0으로 채우기 첫 번째 문자 왼쪽의 빈 공간은 아래와 같이 0으로 채울 수 있습니다.

jshell> System.out.printf("'%05.2f'%n", 2.28);
'02.28'

jshell> System.out.printf("'%010.2f'%n", 2.28);
'0000002.28'

jshell> System.out.printf("'%010.2f'%n", -2.28);
'-000002.28'

jshell> System.out.printf("'%010.2f'%n", 1234567.89);
'1234567.89'

jshell> System.out.printf("'%010.2f'%n", -1234567.89);
'-1234567.89'

정렬 기본적으로 오른쪽 정렬을 의미하는 +입니다.

jshell> System.out.printf("'%10.2f'%n", 2.28);
'      2.28'

다음 코드는 왼쪽에 정렬됩니다.

jshell> System.out.printf("'%-10.2f'%n", 2.28);
'2.28      '

쉼표 및 로케일 사용:

jshell> System.out.printf(Locale.US, "%,d %n", 5000);
5,000

문자열, 부울 형식

몇 가지 기본 예제를 통해 문자열 형식을 살펴보겠습니다.

jshell> System.out.printf("%s %s!%n","Hello","World");
Hello World!
jshell> System.out.printf("%s\f%s!%n","Hello","World!");
Hello
     World!!
jshell> System.out.printf("%s\\%s!%n","Hello","World!");
Hello\World!!

대문자:

jshell> System.out.printf("%s %S!%n","Hello","World");
Hello WORLD!

부울 형식의 예는 다음과 같습니다.

jshell> System.out.printf("%b%n", false);
false

jshell> System.out.printf("%b%n", 0.5);
true

jshell> System.out.printf("%b%n", "false");
true

시간 형식

'H', 'M', 'S' - 시, 분, 초 'L', 'N' – 시간을 밀리초 및 나노초 단위로 나타냅니다. 'p' – AM/PM 'z' – GMT와의 차이를 출력합니다.

jshell> Date date = new Date();
date ==> Fri Apr 19 02:15:36 IST 2019

jshell> System.out.printf("%tT%n", date);
02:15:36

jshell> System.out.printf("H : %tH, M: %tM, S: %tS%n",date,date,date)
H : 02, M: 15, S: 36

후자는 동일한 인수가 많이 필요합니다. 대신 단일 항목으로 바꿀 수 있습니다.

jshell> System.out.printf("%1$tH:%1$tM:%1$tS %1$Tp GMT %1$tz  %n", date)
02:15:36 AM GMT +0530

날짜 형식

날짜 형식에는 다음과 같은 특수 문자가 있습니다. A/a - 하루 종일/축약일 B/b - 전체 월/축약된 월 d - 월의 두 자리 일 형식 m - 두 자리 월 형식 Y - 전체 연도/마지막 연도의 두 자리 j - 연도의 일

jshell> System.out.printf("%s %tB %<te, %<tY", "Current date: ", date);
Current date:  April 19, 2019

jshell> System.out.printf("%1$td.%1$tm.%1$ty %n", date);
19.04.19

jshell> System.out.printf("%s %tb %<te, %<ty", "Current date: ", date);
Current date:  Apr 19, 19

결론

이 자습서에서는 printf() 메서드를 사용하여 가능한 다양한 유형의 서식에 대해 논의했습니다.