Formatter 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
printf 스타일 형식 문자열의 인터프리터입니다.
[Android.Runtime.Register("java/util/Formatter", DoNotGenerateAcw=true)]
public sealed class Formatter : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ICloseable, Java.IO.IFlushable
[<Android.Runtime.Register("java/util/Formatter", DoNotGenerateAcw=true)>]
type Formatter = class
inherit Object
interface ICloseable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface IFlushable
- 상속
- 특성
- 구현
설명
printf 스타일 형식 문자열의 인터프리터입니다. 이 클래스는 레이아웃 근거 및 맞춤, 숫자, 문자열 및 날짜/시간 데이터에 대한 공통 형식 및 로캘별 출력을 지원합니다. 와 같은 byte
java.math.BigDecimal BigDecimal
일반적인 Java 형식 및 Calendar
지원됩니다. 인터페이스를 통해 임의 사용자 유형에 대한 제한된 서식 지정 사용자 지정이 Formattable
제공됩니다.
포맷터는 멀티스레드 액세스에 반드시 안전하지는 않습니다. 스레드 안전은 선택 사항이며 이 클래스의 메서드 사용자의 책임입니다.
Java 언어의 서식이 지정된 인쇄는 C에서 printf
크게 영감을 받았습니다. 형식 문자열은 C와 유사하지만 Java 언어를 수용하고 일부 기능을 활용하기 위해 일부 사용자 지정이 수행되었습니다. 또한 Java 서식은 C보다 더 엄격합니다. 예를 들어 변환이 플래그와 호환되지 않으면 예외가 throw됩니다. C에서 적용할 수 없는 플래그는 자동으로 무시됩니다. 따라서 형식 문자열은 C 프로그래머가 인식할 수 있지만 반드시 C의 형식과 완전히 호환되는 것은 아닙니다.
예상 사용량의 예:
<blockquote>
StringBuilder sb = new StringBuilder();
// Send all output to the Appendable object sb
Formatter formatter = new Formatter(sb, Locale.US);
// Explicit argument indices may be used to re-order output.
formatter.format("%4$2s %3$2s %2$2s %1$2s", "a", "b", "c", "d")
// -> " d c b a"
// Optional locale as the first argument can be used to get
// locale-specific formatting of numbers. The precision and width can be
// given to round and align the value.
formatter.format(Locale.FRANCE, "e = %+10.4f", Math.E);
// -> "e = +2,7183"
// The '(' numeric flag may be used to format negative numbers with
// parentheses rather than a minus sign. Group separators are
// automatically inserted.
formatter.format("Amount gained or lost since last statement: $ %(,.2f",
balanceDelta);
// -> "Amount gained or lost since last statement: $ (6,217.58)"
</blockquote>
일반적인 형식 지정 요청에 대한 편의 메서드는 다음 호출에서 설명한 대로 존재합니다.
<blockquote>
// Writes a formatted string to System.out.
System.out.format("Local time: %tT", Calendar.getInstance());
// -> "Local time: 13:34:18"
// Writes formatted output to System.err.
System.err.printf("Unable to open file '%1$s': %2$s",
fileName, exception.getMessage());
// -> "Unable to open file 'food': No such file or directory"
</blockquote>
C와 sprintf(3)
마찬가지로 문자열은 정적 메서드 String#format(String,Object...) String.format
를 사용하여 형식을 지정할 수 있습니다.
<blockquote>
// Format a string containing a date.
import java.util.Calendar;
import java.util.GregorianCalendar;
import static java.util.Calendar.*;
Calendar c = new GregorianCalendar(1995, MAY, 23);
String s = String.format("Duke's Birthday: %1$tb %1$te, %1$tY", c);
// -> s == "Duke's Birthday: May 23, 1995"
</blockquote>
<h3>"org">Organization</h3>
이 사양은 두 섹션으로 나뉩니다. 첫 번째 섹션인 요약에서는 기본 서식 개념을 다룹니다. 이 섹션은 빠르게 시작하려는 사용자를 위한 것이며 다른 프로그래밍 언어의 서식이 지정된 인쇄에 익숙합니다. 두 번째 섹션인 세부 정보에는 특정 구현 세부 정보가 설명됩니다. 서식 동작의 보다 정확한 사양을 원하는 사용자를 위한 것입니다.
<h3>"summary">Summary</h3>
이 섹션은 서식 개념에 대한 간략한 개요를 제공하기 위한 것입니다. 정확한 동작 세부 정보는 세부 정보 섹션을 참조하세요.
<h4>"구문">형식 문자열 구문</h4>
형식이 지정된 출력을 생성하는 모든 메서드에는 형식 문자열 과 인수 목록이 필요합니다. 서식 문자열은 String
고정 텍스트와 하나 이상의 포함된 서식 지정자를 포함할 수 있는 문자열입니다. 다음 예제를 참조해 주세요:
<blockquote>
Calendar c = ...;
String s = String.format("Duke's Birthday: %1$tm %1$te,%1$tY", c);
</blockquote>
이 형식 문자열은 메서드의 첫 번째 인수입니다 format
. 인수를 처리하는 방법과 텍스트에 삽입해야 하는 위치를 나타내는 세 가지 형식 지정자 "%1$tm
", "%1$te
" 및 "%1$tY
"가 포함되어 있습니다. 서식 문자열의 나머지 부분은 다른 공백이나 문장 부호를 포함하여 "Dukes Birthday: "
고정된 텍스트입니다.
인수 목록은 형식 문자열 뒤의 메서드에 전달된 모든 인수로 구성됩니다. 위의 예제에서 인수 목록은 크기 1이며 개체c
로 java.util.Calendar Calendar
구성됩니다.
<ul>
<li> 일반, 문자 및 숫자 형식의 형식 지정자에는 다음 구문이 있습니다.
<blockquote>
%[argument_index$][flags][width][.precision]conversion
</blockquote>
선택적 argument_index 인수 목록에서 인수의 위치를 나타내는 10진수 정수입니다. 첫 번째 인수는 "1$
", 두 번째 인수는 "2$
"로 참조됩니다.
선택적 플래그 는 출력 형식을 수정하는 문자 집합입니다. 유효한 플래그 집합은 변환에 따라 달라집니다.
선택적 너비 는 출력에 쓸 최소 문자 수를 나타내는 양의 10진수 정수입니다.
선택적 정밀도 는 일반적으로 문자 수를 제한하는 데 사용되는 음수가 아닌 10진수 정수입니다. 특정 동작은 변환에 따라 달라집니다.
필수 변환 은 인수의 서식을 지정하는 방법을 나타내는 문자입니다. 지정된 인수에 대한 유효한 변환 집합은 인수의 데이터 형식에 따라 달라집니다.
<li> 날짜 및 시간을 나타내는 데 사용되는 형식의 형식 지정자에는 다음 구문이 있습니다.
<blockquote>
%[argument_index$][flags][width]conversion
</blockquote>
선택적 argument_index, 플래그 및 너비 는 위와 같이 정의됩니다.
필요한 변환 은 두 문자 시퀀스입니다. 첫 번째 문자는 't'
or 'T'
. 두 번째 문자는 사용할 형식을 나타냅니다. 이러한 문자는 GNU date
및 POSIX strftime(3c)
에서 정의한 문자와 비슷하지만 완전히 동일하지는 않습니다.
<li> 인수에 해당하지 않는 형식 지정자에는 다음 구문이 있습니다.
<blockquote>
%[flags][width]conversion
</blockquote>
선택적 플래그 및 너비 는 위와 같이 정의됩니다.
필요한 변환 은 출력에 삽입할 콘텐츠를 나타내는 문자입니다.
</ul>
<h4> 변환 </h4>
변환은 다음 범주로 나뉩니다.
<ol>
<li><b>General</b> - 모든 인수 형식에 적용할 수 있습니다.
<li>b Character/b> - 유니코드 문자를 short
byte
Short
Byte
Character
char
나타내는 기본 형식에 적용할 수 있습니다.<>< 이 변환은 형식 int
및 Integer
li<>b Numeric</b>를 반환true
<할 때 Character#isValidCodePoint
에도 적용될 수 있습니다.>
<ol>
<li>b 정수 계열</b> - Java 정수 계열 형식에 적용할 수 있습니다. byte
, Byte
, Short
short
및 int
Integer
, long
Long
및 java.math.BigInteger BigInteger
(그러나 그렇지 않거나 char
Character
)><
<li><b>부동 소수점</b> - Java 부동 소수점 형식에 적용할 수 있습니다. , float
Float
, double
, Double
및 java.math.BigDecimal BigDecimal
</ol>
<li>b Date/Time</b> - 날짜 또는 시간을 long
인코딩할 수 있는 Java 형식에 적용할 수 있습니다. , Long
, Date
Calendar
및 TemporalAccessor TemporalAccessor
<li><b>Percent</b> - 리터럴 '%'
을 생성합니다('\u0025'
)><
<li><b>줄 구분 기호</b> - 플랫폼별 선 구분 기호를 생성합니다.
</ol>
범주 일반, 문자, 숫자, 정수 및 날짜/시간 변환의 경우 달리 지정하지 않는 한 인수 인수가 ""인 경우 결과는 "null
"입니다null
.
다음 표에서는 지원되는 변환을 요약합니다. 대문자(예'B'
: ,, ,, 'H'
'S'
, 'C'
, 'E'
'G'
'A'
'X'
,, 및)로 표시되는 변환은 결과가 우세java.util.Locale Locale
한 규칙에 따라 대문자로 변환된다는 점을 제외하고 해당 소문자 변환 문자의 변환과 'T'
동일합니다. 인스턴스 생성 시 또는 메서드 호출 java.util.Locale.Category#FORMAT default locale
에 대한 매개 변수로 지정된 명시적 로캘이 없는 경우 해당 로캘이 사용됩니다.
<table class="striped"caption style="><display:none">genConv</caption><thead><tr><th scope="col" style="vertical-align:bottom"> Conversion <th scope="col" style="vertical-align:bottom"> Argument Category <th scope="col" style="vertical-align:bottom"> Description </thead><tbody<>tr><th scope="row" style="vertical-align:top">'b'
, 'B'
<td style="vertical-align:top" > general <td> 인수 인수인 null
경우 결과는 "false
"입니다. 인수가 a boolean
또는 Boolean
이면 결과는 .에 의해 반환된 String#valueOf(boolean) String.valueOf(arg)
문자열입니다. 그렇지 않으면 결과는 "true"입니다.
<tr><th scope="row" style="vertical-align:top"'h'
>,<'H'
td style="vertical-align:top"> 일반 <td> 결과를 호출하여 Integer.toHexString(arg.hashCode())
가져옵니다.
<tr><th scope="row" style="vertical-align:top"'s'
>,<'S'
td style="vertical-align:top"> general <td> If arg implementsFormattable
, then Formattable#formatTo arg.formatTo
invoked. 그렇지 않으면 결과를 호출하여 arg.toString()
가져옵니다.
<tr><th scope="row" style="vertical-align:top">'c'
, 'C'
<td style="vertical-align:top"> 문자 <td> 결과는 유니코드 문자입니다.
<tr><th scope="row" style="vertical-align:top"td style="'d'
<>vertical-align:top"> 정수 <td> 결과는 10진수 정수로 서식이 지정됩니다.
<tr><th scope="row" style="vertical-align:top"td style="'o'
<>vertical-align:top"> 정수 <td> 결과는 8진수 정수로 서식이 지정됩니다.
<tr><th scope="row" style="vertical-align:top">'x'
, 'X'
<td style="vertical-align:top"> 정수 <td> 결과는 16진수 정수로 서식이 지정됩니다.
<tr><th scope="row" style="vertical-align:top">'e'
, 'E'
<td style="vertical-align:top"> 부동 소수점 <td> 결과는 전산화된 과학적 표기법에서 10진수로 서식이 지정됩니다.
<tr><th scope="row" style="vertical-align:top"><'f'
td style="vertical-align:top"> 부동 소수점 <td> 결과 형식이 10진수로 지정됩니다.
<tr><th scope="row" style="vertical-align:top">'g'
, 'G'
<td style="vertical-align:top"> 부동 소수점 <td> 결과는 반올림 후의 정밀도 및 값에 따라 전산화된 과학적 표기법 또는 10진수 형식을 사용하여 형식이 지정됩니다.
<tr><th scope="row" style="vertical-align:top">'a'
, 'A'
<td style="vertical-align:top"> 부동 소수점 <td> 결과는 중요 및 지수를 사용하여 16진수 부동 소수점 숫자로 형식이 지정됩니다. 이 변환은 <후자가 BigDecimal
부동 소수점 인수 범주에 있음에도 불구하고 형식에 대해 지원>되지 않습니다<>.
<tr><th scope="row" style="vertical-align:top">'t'
, 'T'
<td style="vertical-align:top"> date/time td> Prefix for date and time <conversion characters. 날짜/시간 변환을 참조하세요.
<tr><th scope="row" style="vertical-align:top"td style="<'%'
>vertical-align:top"> percent <td> 결과는 리터럴 '%'
()'\u0025'
<tr><th scope="row" style="vertical-align:top"><'n'
td style="vertical-align:top"> 줄 구분 기호 <td> 결과는 플랫폼별 선 구분 기호입니다.
</tbody></table>
변환으로 명시적으로 정의되지 않은 문자는 불법이며 향후 확장을 위해 예약됩니다.
<h4>"dt">Date/Time Conversions</h4>
다음 날짜 및 시간 변환 접미사 문자는 변환 'T'
에 't'
대해 정의됩니다. 형식은 GNU date
및 POSIX strftime(3c)
에서 정의한 형식과 비슷하지만 완전히 동일하지는 않습니다. Java 관련 기능에 액세스하기 위해 추가 변환 형식이 제공됩니다(예: 'L'
두 번째 기능의 경우 밀리초).
다음 변환 문자는 서식 지정 시간에 사용됩니다.
<table class="striped"><caption style="display:none">time</caption><tbody><tr><th scope="row" style="vertical-align:top"<'H'
>td> Hour of the day for the 24-time, formatted as two digits with the leading zero as necessary. 즉. 00 - 23
<tr><th scope="row" style="vertical-align:top"><'I'
td> Hour for the 12-hour clock, formatted as two digits with the leading zero as necessary, 즉 . 01 - 12
<tr><th scope="row" style="vertical-align:top"><'k'
td> Hour of the day for the 24-hour clock, 즉 . 0 - 23
<tr><th scope="row" style="vertical-align:top"><'l'
td> Hour for the 12-hour clock, 즉 . 1 - 12
<tr><th scope="row" style="vertical-align:top"><'M'
td> Minute(시간 내의 분)은 필요에 따라 앞에 0이 있는 두 자리로 서식이 지정됩니다. 00 - 59
즉.
<tr><th scope="row" style="vertical-align:top"'S'
<>td> Seconds in the minute, formatted as the two digits with the leading zero as required, 즉 00 - 60
("60
"is a special value required to support leap seconds).
<tr><th scope="row" style="vertical-align:top"><'L'
td Millisecond> 내의 두 번째 숫자 형식은 3자리 숫자로, 즉 필요에 따라 앞에 오는 0이 있습니다. 000 - 999
<tr><th scope="row" style="vertical-align:top"><'N'
td Nanosecond> 2 이내, 필요에 따라 선행 0이 있는 9자리 숫자로 서식이 지정됩니다. 000000000 - 999999999
즉.
<tr><th scope="row" style="vertical-align:top"><'p'
td> Locale-specific java.text.DateFormatSymbols#getAmPmStrings morning or afternoon marker in lower case, 예: ""am
또는 "pm
"입니다. 변환 접두사를 'T'
사용하면 이 출력이 대문자로 강제 적용합니다.
<tr><th scope="row" style="vertical-align:top">'z'
<td>RFC 822 style numeric time zone offset from GMT, 예: . -0800
이 값은 일광 절약 시간에 필요한 대로 조정됩니다. 의 Long
경우 long
사용되는 Date
표준 시간대는 Java 가상 머신의 이 인스턴스에 대한 TimeZone#getDefault() 기본 표준 시간대입니다.
<tr><th scope="row" style="vertical-align:top"<>'Z'
td> 표준 시간대의 약어를 나타내는 문자열입니다. 이 값은 일광 절약 시간에 필요한 대로 조정됩니다. 의 Long
경우 long
사용되는 Date
표준 시간대는 Java 가상 머신의 이 인스턴스에 대한 TimeZone#getDefault() 기본 표준 시간대입니다. Formatter의 로캘은 인수의 로캘을 대체합니다(있는 경우).
<tr><th scope="row" style="vertical-align:top"><'s'
td> Seconds 이후 epoch의 시작부터 1970 00:00:00
년 1월 1일 UTC, 즉 . Long.MIN_VALUE/1000
Long.MAX_VALUE/1000
<tr><th scope="row" style="vertical-align:top"'Q'
><td Milliseconds> since the epoch starting at 1 january 1970 00:00:00
UTC, 즉 . Long.MIN_VALUE
Long.MAX_VALUE
</tbody></table>
다음 변환 문자는 날짜 서식 지정에 사용됩니다.
<table class="striped"><caption style="display:none">date</caption><tbody>
<tr><th scope="row" style="vertical-align:top"'B'
<>td> Locale-specific java.text.DateFormatSymbols#getMonths full month name, 예: . "February"
"January"
<tr><th scope="row" style="vertical-align:top"'b'
<>td> Locale-specific java.text.DateFormatSymbols#getShortMonths abbreviated month name, 예: . "Feb"
"Jan"
<tr><th scope="row" style="vertical-align:top"><'h'
td> Same as .'b'
<tr><th scope="row" style="vertical-align:top"'A'
<>td> Locale-specific full name of the java.text.DateFormatSymbols#getWeekdays day of the week, 예를 들어,<"Monday"
tr><th scope="row" style="vertical-align:top">'a'
<td> Locale-specific short name of the java.text.DateFormatSymbols#getShortWeekdays day of the week, 예: "Sun"
,<"Mon"
tr><th scope="row" style="vertical-align:top"'C'
><td> 4자리 연도로 100
나뉩니다. "Sunday"
필요에 따라 앞에 0이 있는 두 자리로 서식이 지정됩니다. 즉00 - 99
<, tr><th scope="row" style="vertical-align:top"<'Y'
>td> Year, 필요에 따라 선행 0이 있는 4자리 이상으로 서식이 지정됩니다. 예: 0092
양력의 CE와 같습니다92
.
<tr><th scope="row" style="vertical-align:top"><'y'
td> Last Two digits of the year, formatted with leading zeros as necessary, 즉 . 00 - 99
<tr><th scope="row" style="vertical-align:top"><'j'
td> Day of year, 필요에 따라 앞에 오는 0이 있는 세 자리로 서식이 지정됩니다(예: 001 - 366
그레고리오력의 경우).
<tr><th scope="row" style="vertical-align:top"><'m'
td> Month, 필요에 따라 앞에 오는 0이 있는 두 자리로 서식이 지정됩니다. 즉. 01 - 13
<tr><th scope="row" style="vertical-align:top"'d'
<>td> Day, 필요에 따라 앞에 오는 0이 있는 두 자리로 형식이 지정됩니다. 즉01 - 31
<, tr><th scope="row" style="vertical-align:top"'e'
<>td> Day, 즉 두 자리 숫자로 서식이 지정됩니다. 1 - 31
</tbody></table>
다음 변환 문자는 공통 날짜/시간 컴퍼지션의 서식을 지정하는 데 사용됩니다.
<table class="striped"><caption style="display:none">composites</caption><tbody>
<tr><th scope="row" style="vertical-align:top"'R'
<>td> Time formatted for the 24시간 clock as "%tH:%tM"
<tr><th scope="row" style="vertical-align:top"'T'
<>td> Time formatted for the 24-time as ."%tH:%tM:%tS"
<tr><th scope="row" style="vertical-align:top"><'r'
td> Time formatted for the 12-hour clock as ."%tI:%tM:%tS %Tp"
아침 또는 오후 표식('%Tp'
)의 위치는 로캘에 따라 달라질 수 있습니다.
<tr><th scope="row" style="vertical-align:top"><'D'
td> Date 형식."%tm/%td/%ty"
<tr><th scope="row" style="vertical-align:top">'F'
<td>ISO 8601 전체 날짜 형식."%tY-%tm-%td"
<tr><th scope="row" style="vertical-align:top"'c'
<>td> Date 및 time formatted as, "%ta %tb %td %tT %tZ %tY"
예: . "Sun Jul 20 16:17:00 EDT 1969"
</tbody></table>
날짜/시간 변환 접미사로 명시적으로 정의되지 않은 문자는 불법이며 향후 확장을 위해 예약되어 있습니다.
<h4> Flags </h4>
다음 표에서는 지원되는 플래그를 요약합니다. y 는 플래그가 표시된 인수 형식에 대해 지원됨을 의미합니다.
<table class="striped"><caption style="display:none">genConv</caption><thead><tr><th scope="col" style="vertical-align:bottom"> Flag <th scope="col" style="vertical-align:bottom"> 일반 <th 범위 ="col" style="vertical-align:bottom"> Character <th scope="col" style="vertical-align:bottom"> 정수 <계열 범위="col" style="vertical-align:bottom"> 부동 소수점 <th scope="col" style=" vertical-align:bottom"> Date/Time <th scope="col" style="vertical-align:bottom"> Description </thead><tbody><tr><th scope="row"> '-' <td style="text-align:center; vertical-align:top"> y <td style="text-align:center; vertical-align:top"> y <td style="text-align:center; vertical-align:top"> y <td style="text-align:center; vertical-align:top"> y <td style="text-align:center; vertical-align:top"> y <td> 결과가 왼쪽 맞춤됩니다.
<tr><th scope="row"> '#' <td style="text-align:center; vertical-align:top"> y<sup>1</sup><td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> y<sup>3</sup<>td style="text-align:center; vertical-align:top"> y <td style="text-align:center; vertical-align:top"> - <td> 결과는 변환 종속 대체 폼을 사용해야 합니다.
<tr><th scope="row"> '+' <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> y<sup>4</sup><td style="text-align:center; vertical-align:top"> y <td style="text-align:center; vertical-align:top"> - <td> 결과에는 항상 기호가 포함됩니다.
<tr><th scope="row"> ' ' <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> y<sup>4</sup<>td style="text-align:center; vertical-align:top"> y <td style="text-align:center; vertical-align:top"> - <td> 결과에 양수 값에 대한 선행 공간이 포함됩니다.
<tr><th scope="row"> '0' <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> y <td style="text-align:center; vertical-align:top"> y <td style="text-align:center; vertical-align:top"> - <td> 결과는 0 패딩됩니다.
<tr><th scope="row"> ',' <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> y<sup>2</sup><td style="text-align:center; vertical-align:top"> y<sup>5</sup<>td style="text-align:center; vertical-align:top"> - <td> 결과에는 로캘별 java.text.DecimalFormatSymbols#getGroupingSeparator 그룹화 구분 기호 tr><th scope="row"> '(' <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> y<sup>4</sup><td style="text-align:center; vertical-align:top"> y<sup>5</sup><td< style="text-align:center"> - <td> 결과는 음수를 괄호로 묶습니다.
</tbody></table>
<sup>1</sup> 의 정의 Formattable
에 따라 달라집니다.
<sup>2</sup> 변환에만 해당 'd'
합니다.
<sup>3</sup> For 'o'
, 'x'
및 'X'
변환에만 해당합니다.
<sup>4</sup> For 'd'
, 'o'
, 'x'
및 'X'
적용되거나 'd'
java.math.BigInteger BigInteger
적용된 byte
변환, , Byte
short
, Short
int
및 Integer
, long
및 Long
.
<sup>5</sup> For 'e'
, 'E'
, 'f'
'g'
및 'G'
변환에만 해당합니다.
플래그로 명시적으로 정의되지 않은 문자는 불법이며 향후 확장을 위해 예약됩니다.
<h4> Width </h4>
너비는 출력에 쓸 최소 문자 수입니다. 선 구분 기호 변환의 경우 너비를 적용할 수 없습니다. 제공되면 예외가 throw됩니다.
<h4> Precision </h4>
일반 인수 형식의 경우 전체 자릿수는 출력에 쓸 최대 문자 수입니다.
부동 소수점 변환'a'
의 경우 , 'A'
, 'e'
'E'
및 'f'
전체 자릿수는 반지름 점 뒤의 자릿수입니다. 변환인 'g'
'G'
경우 전체 자릿수는 반올림 후 결과 크기의 총 자릿수입니다.
문자, 정수 및 날짜/시간 인수 형식과 백분율 및 선 구분 기호 변환의 경우 전체 자릿수는 적용되지 않습니다. 전체 자릿수가 제공되면 예외가 throw됩니다.
<h4> 인수 인덱스 </h4>
인수 인덱스는 인수 목록에서 인수의 위치를 나타내는 10진수 정수입니다. 첫 번째 인수는 "1$
", 두 번째 인수는 "2$
"로 참조됩니다.
위치별로 인수를 참조하는 또 다른 방법은 ('\u003c'
) 플래그를 사용하여 '<'
이전 형식 지정자에 대한 인수를 다시 사용하는 것입니다. 예를 들어 다음 두 문은 동일한 문자열을 생성합니다.
<blockquote>
Calendar c = ...;
String s1 = String.format("Duke's Birthday: %1$tm %1$te,%1$tY", c);
String s2 = String.format("Duke's Birthday: %1$tm %<te,%<tY", c);
</blockquote>
<hr><h3>"detail">Details</h3>
이 섹션은 조건 및 예외, 지원되는 데이터 형식, 지역화 및 플래그, 변환 및 데이터 형식 간의 상호 작용을 포함하여 서식 지정에 대한 동작 세부 정보를 제공하기 위한 것입니다. 서식 개념에 대한 개요는 요약을 참조하세요.
변환, 날짜/시간 변환 접미사 또는 플래그로 명시적으로 정의되지 않은 문자는 불법이며 향후 확장을 위해 예약됩니다. 형식 문자열에서 이러한 문자를 사용하면 throw되거나 UnknownFormatFlagsException
throw됩니다UnknownFormatConversionException
.
형식 지정자에 잘못된 값이 있는 너비 또는 전체 자릿수가 포함되어 있거나 지원되지 않는 경우 각각 또는 해당 IllegalFormatWidthException
IllegalFormatPrecisionException
값이 throw됩니다.
형식 지정자에 해당 인수에 적용할 수 없는 변환 문자가 포함되어 있으면 해당 문자가 IllegalFormatConversionException
throw됩니다.
지정된 모든 예외는 다음과 같은 String#format(String,Object...) String.format
java.io.PrintStream#printf(String,Object...) PrintStream.printf
모든 편의 메서드 Formatter
뿐만 아니라 메서드에 의해 format
throw format
될 수 있습니다.
범주 일반, 문자, 숫자, 정수 및 날짜/시간 변환의 경우 달리 지정하지 않는 한 인수 인수가 ""인 경우 결과는 "null
"입니다null
.
대문자(예'B'
: ,, ,, 'H'
'S'
, 'C'
, 'E'
'G'
'A'
'X'
,, 및)로 표시되는 변환은 결과가 우세java.util.Locale Locale
한 규칙에 따라 대문자로 변환된다는 점을 제외하고 해당 소문자 변환 문자의 변환과 'T'
동일합니다. 인스턴스 생성 시 또는 메서드 호출 java.util.Locale.Category#FORMAT default locale
에 대한 매개 변수로 지정된 명시적 로캘이 없는 경우 해당 로캘이 사용됩니다.
<h4>"dgen">General</h4>
다음과 같은 일반 변환이 모든 인수 형식에 적용될 수 있습니다.
<table class="striped"><caption style="display:none">dgConv</caption><tbody>
<tr><th scope="row" style="vertical-align:top"td style="'b'
><vertical-align:top">'\u0062'
<td>는 반환된 Boolean#toString(boolean)
대로 "true
" 또는 "false
"를 생성합니다.
인수인 null
경우 결과는 "false
"입니다. 인수가 a boolean
또는 Boolean
이면 결과는 .에 의해 반환된 String#valueOf(boolean) String.valueOf()
문자열입니다. 그렇지 않으면 결과는 "true
"입니다.
플래그가 '#'
지정되면 throw FormatFlagsConversionMismatchException
됩니다.
<tr><th scope="row" style="vertical-align:top"td style=">'B'
<vertical-align:top"'\u0042'
<>td> The upper-case variant of .'b'
<tr><th scope="row" style="vertical-align:top"td style=">'h'
<vertical-align:top"'\u0068'
><td> 개체의 해시 코드 값을 나타내는 문자열을 생성합니다.
결과는 .를 호출하여 Integer.toHexString(arg.hashCode())
가져옵니다.
플래그가 '#'
지정되면 throw FormatFlagsConversionMismatchException
됩니다.
<tr><th scope="row" style="vertical-align:top"td style=">'H'
<vertical-align:top"'\u0048'
<>td> The upper-case variant of .'h'
<tr><th scope="row" style="vertical-align:top"td style=">'s'
<vertical-align:top"'\u0073'
><td> 문자열을 생성합니다.
인수가 구현 Formattable
되면 해당 Formattable#formatTo formatTo
메서드가 호출됩니다. 그렇지 않으면 인수의 toString()
메서드를 호출하여 결과를 가져옵니다.
플래그가 '#'
지정되고 인수가 아닌 Formattable
경우 throw FormatFlagsConversionMismatchException
됩니다.
<tr><th scope="row" style="vertical-align:top"td style=">'S'
<vertical-align:top"'\u0053'
<>td> The upper-case variant of .'s'
</tbody></table>
다음 "dFlags"> 플래그는 일반 변환에 적용됩니다.
<table class="striped"><caption style="display:none">dFlags</caption><tbody>
<tr><th scope="row" style="vertical-align:top"td style=">'-'
<vertical-align:top"'\u002d'
><td> Left가 출력을 양쪽에 맞춥니다. 필드의 최소 너비를 채우기 위해 필요에 따라 변환된 값의 끝에 공백('\u0020'
)이 추가됩니다. 너비가 제공되지 않으면 throw MissingFormatWidthException
됩니다. 이 플래그가 지정되지 않으면 출력이 오른쪽 맞춤됩니다.
<tr><th scope="row" style="vertical-align:top"td style=">'#'
<vertical-align:top"'\u0023'
><td> 출력에 대체 형식이 필요합니다. 폼의 정의는 변환에 의해 지정됩니다.
</tbody></table>
"genWidth"> 너비는 출력에 쓸 최소 문자 수입니다. 변환된 값의 길이가 너비보다 작으면 총 문자 수가 너비와 같을 때까지 출력이 ('\u0020'
)로 채워 ' '
집니다. 패딩은 기본적으로 왼쪽에 있습니다. 플래그가 '-'
지정되면 안쪽 여백이 오른쪽에 있습니다. 너비를 지정하지 않으면 최소값이 없습니다.
전체 자릿수는 출력에 쓸 최대 문자 수입니다. 전체 자릿수는 너비 앞에 적용되므로 너비가 전체 자릿수보다 크더라도 출력이 문자로 잘립니다 precision
. 전체 자릿수를 지정하지 않으면 문자 수에 대한 명시적 제한이 없습니다.
<h4>"dchar">Character</h4>
이 변환을 적용 char
할 수 있습니다.Character
형식byte
, Byte
, short
및 Integer
Character#isValidCodePoint
Short
int
반환 true
시에도 적용할 수 있습니다. 반환 false
되는 경우 throw IllegalFormatCodePointException
됩니다.
<table class="striped"><caption style="display:none">charConv</caption><tbody>
<tr><th scope="row" style="vertical-align:top"td style=">'c'
<vertical-align:top"'\u0063'
><td>는 유니코드 문자 표현에 설명된 대로 인수를 유니코드 문자로 형식화합니다. 인수가 보조 문자를 나타내는 경우 둘 이상의 16비 char
트일 수 있습니다.
플래그가 '#'
지정되면 throw FormatFlagsConversionMismatchException
됩니다.
<tr><th scope="row" style="vertical-align:top"td style=">'C'
<vertical-align:top"'\u0043'
<>td> The upper-case variant of .'c'
</tbody></table>
'-'
일반 변환에 대해 정의된 플래그가 적용됩니다. 플래그가 '#'
지정되면 throw FormatFlagsConversionMismatchException
됩니다.
너비는 일반 변환에 대해 정의됩니다.
정밀도는 적용되지 않습니다. 전체 자릿수를 지정하면 throw IllegalFormatPrecisionException
됩니다.
<h4>"dnum">Numeric</h4>
숫자 변환은 다음 범주로 나뉩니다.
<ol>
<li><b>Byte, Short, Integer 및 Long</b><li<>b>BigInteger</b><li><b>Float and Double</b><li><b>BigDecimal</b></ol>
숫자 형식은 다음 알고리즘에 따라 형식이 지정됩니다.
<b>"L10nAlgorithm"> Number Localization Algorithm</b>
정수 부분, 소수 부분 및 지수(데이터 형식에 적합)에 대한 숫자를 가져온 후 다음 변환이 적용됩니다.
<ol>
<li> 문자열의 각 숫자 문자 d는 현재 로캘의 java.text.DecimalFormatSymbols#getZeroDigit() 0자리 z, 즉 d - '0'
;를 기준으로 계산된 로캘별 숫자로 바뀝니다. + z.
<li> 소수 구분 기호가 있으면 로캘별 java.text.DecimalFormatSymbols#getDecimalSeparator 10진수 구분 기호가 대체됩니다.
<li> ('\u002c'
) "L10nGroup"> 플래그가 지정된 경우 ','
로캘별 java.text.DecimalFormatSymbols#getGroupingSeparator 그룹화 구분 기호는 문자열의 정수 부분을 최소에서 가장 중요한 숫자로 검색하고 로캘의 java.text.DecimalFormat#getGroupingSize() 그룹 크기로 정의된 간격으로 구분 기호를 삽입하여 삽입됩니다.
<li> 플래그가 '0'
지정되면 문자열의 길이가 요청된 필드 너비와 같을 때까지 로캘별 java.text.DecimalFormatSymbols#getZeroDigit() 0 자릿수가 기호 문자 뒤에 삽입되고 첫 번째 숫자가 0이 아닌 숫자 앞에 삽입됩니다.
<li> 값이 음수이고 플래그가 '('
지정 '('
되면 ('\u0028'
)가 앞에 추가되고 (')'
'\u0029'
)가 추가됩니다.
<li> 값이 음수(또는 부동 소수점 음수 0)이고 '('
플래그가 지정되지 않은 경우 a '-'
('\u002d'
)가 앞에 추가됩니다.
<li> 플래그가 '+'
지정되고 값이 양수 또는 0(또는 부동 소수점 긍정 0)이면 ('+'
'\u002b'
)가 앞에 추가됩니다.
</ol>
값이 NaN 또는 양의 무한대이면 리터럴 문자열 "NaN" 또는 "Infinity"가 각각 출력됩니다. 값이 음수 무한대이면 플래그가 지정되면 '('
출력이 "(무한대)"이 되고, 그렇지 않으면 출력은 "-Infinity"가 됩니다. 이러한 값은 지역화되지 않습니다.
"dnint"><b> Byte, Short, Integer 및 Long </b>
다음 변환은 , , Short
short
int
Byte
및 , 및 Integer
Long
long
에 byte
적용할 수 있습니다.
<table class="striped"><caption style="display:none">IntConv</caption><tbody>
<tr><th scope="row" style="vertical-align:top"td style=">'d'
<vertical-align:top"'\u0064'
><td> 형식 인수를 10진수 정수로 지정합니다. 지역화 알고리즘이 적용됩니다.
플래그가 '0'
지정되고 값이 음수이면 기호 다음에 0 패딩이 발생합니다.
플래그가 '#'
지정되면 throw FormatFlagsConversionMismatchException
됩니다.
<tr><th scope="row" style="vertical-align:top"td style=">'o'
<vertical-align:top"'\u006f'
><td>는 인수를 base 8의 정수로 서식을 지정합니다. 지역화가 적용되지 않습니다.
x가 음수이면 Byte#SIZE Byte, Short#SIZE Short, Integer#SIZE Integer 또는 Long#SIZE Long 클래스의 정적 SIZE
필드에 의해 반환되는 형식의 비트 수가 있는 값 n
에 2<sup>n</sup>을 추가하여 생성되는 부호 없는 값이 됩니다.
플래그가 '#'
지정되면 출력은 항상 radix 표시 '0'
기로 시작됩니다.
플래그가 '0'
지정되면 기호 표시에 따라 필드 너비에 대한 선행 0으로 출력이 채워집니다.
If '('
, '+'
' ', 또는 ','
플래그가 지정되면 throw FormatFlagsConversionMismatchException
됩니다.
<tr><th scope="row" style="vertical-align:top"td style=">'x'
<vertical-align:top"'\u0078'
><td>는 인수를 base 16의 정수 형식으로 지정합니다. 지역화가 적용되지 않습니다.
x가 음수이면 Byte#SIZE Byte, Short#SIZE Short, Integer#SIZE Integer 또는 Long#SIZE Long 클래스의 정적 SIZE
필드에 의해 반환되는 형식의 비트 수가 있는 값 n
에 2<sup>n</sup>을 추가하여 생성되는 부호 없는 값이 됩니다.
플래그가 '#'
지정되면 출력은 항상 radix 표시 "0x"
기로 시작됩니다.
플래그가 '0'
지정된 경우 출력은 radix 표시기 또는 기호(있는 경우) 뒤의 선행 0으로 필드 너비에 패딩됩니다.
, ' '
또는 '+'
','
플래그가 지정되면 '('
throw FormatFlagsConversionMismatchException
됩니다.
<tr><th scope="row" style="vertical-align:top"td style=">'X'
<vertical-align:top"'\u0058'
<>td> The upper-case variant of .'x'
숫자를 나타내는 전체 문자열은 (있는 경우) 및 모든 16진수 숫자()를 포함하여 'x'
String#toUpperCase 대문자로 변환됩니다'\u0061'
'a'
'\u0066'
- 'f'
- .
</tbody></table>
변환이 , 또는 플래그와 '0'
플래그가 모두 '#'
지정된 경우 결과에는 radix 표시기('0'
8진수 및 "0X"
"0x"
16진수), 일부 0(너비 기준) 및 값이 포함됩니다.'X'
'x'
'o'
플래그가 '-'
지정되지 않으면 기호 앞에 공백 안쪽 여백이 발생합니다.
다음 "intFlags"> 플래그는 숫자 정수 변환에 적용됩니다.
<table class="striped"><caption style="display:none">intFlags</caption><tbody>
<tr><th scope="row" style="vertical-align:top"td style=">'+'
<vertical-align:top"'\u002b'
><td> 모든 양수에 대해 양의 기호를 포함하려면 출력이 필요합니다. 이 플래그를 지정하지 않으면 음수 값에만 기호가 포함됩니다.
플래그와 ' '
플래그가 '+'
모두 지정되면 throw IllegalFormatFlagsException
됩니다.
<tr><th scope="row" style="vertical-align:top"td style=">' '
<vertical-align:top"'\u0020'
<>td>를 사용하려면 음수가 아닌 값에 대해 단일 추가 공간('\u0020'
)을 포함해야 합니다.
플래그와 ' '
플래그가 '+'
모두 지정되면 throw IllegalFormatFlagsException
됩니다.
<tr><th scope="row" style="vertical-align:top"td style=">'0'
<vertical-align:top"'\u0030'
><td>를 사용하려면 출력을 선행 java.text.DecimalFormatSymbols#getZeroDigit 0을 NaN 또는 무한대로 변환하는 경우를 제외하고 기호 또는 반지름 표시기 다음의 최소 필드 너비로 채워야 합니다. 너비가 제공되지 않으면 throw MissingFormatWidthException
됩니다.
플래그와 '0'
플래그가 '-'
모두 지정되면 throw IllegalFormatFlagsException
됩니다.
<tr><th scope="row" style="vertical-align:top"td style=">','
<vertical-align:top"'\u002c'
><td> 지역화 알고리즘의 "group" 섹션에 설명된 대로 로캘별 java.text.DecimalFormatSymbols#getGroupingSeparator 그룹 구분 기호를 포함하려면 출력이 필요합니다.
<tr><th scope="row" style="vertical-align:top"td style="'('
<>vertical-align:top"<'\u0028'
>td> 앞에 ()를 추가하고 '('
음'\u0028'
수 값에 ('\u0029'
)를 추가하려면 출력이 ')'
필요합니다.
</tbody></table>
"intdFlags"> 플래그가 지정되지 않은 경우 기본 서식은 다음과 같습니다.
<ul>
<li> 출력은 li> 음수 내에서 width
<오른쪽 맞춤으로 시작합니다.'-'
'\u002d'
<li> 양수 및 0은 부호 또는 추가 선행 공간을 포함하지 않습니다.
<li> 그룹화 구분 기호가 포함되지 않음
</ul>
"intWidth"> 너비는 출력에 쓸 최소 문자 수입니다. 여기에는 모든 기호, 숫자, 그룹화 구분 기호, 반지름 표시기 및 괄호가 포함됩니다. 변환된 값의 길이가 너비보다 작으면 총 문자 수가 너비와 같을 때까지 출력이 공백('\u0020'
)으로 채워집니다. 패딩은 기본적으로 왼쪽에 있습니다. 플래그가 지정되면 '-'
안쪽 여백이 오른쪽에 있습니다. 너비를 지정하지 않으면 최소값이 없습니다.
정밀도는 적용되지 않습니다. 전체 자릿수를 지정하면 throw IllegalFormatPrecisionException
됩니다.
"dnbint"><b> BigInteger </b>
다음 변환을 적용할 java.math.BigInteger
수 있습니다.
<table class="striped"><caption style="display:none">bIntConv</caption><tbody>
<tr><th scope="row" style="vertical-align:top">'d'
<td style="vertical-align:top"'\u0064'
><td>를 사용하려면 출력의 서식을 10진수 정수로 지정해야 합니다. 지역화 알고리즘이 적용됩니다.
플래그가 '#'
지정 FormatFlagsConversionMismatchException
되면 throw됩니다.
<tr><th scope="row" style="vertical-align:top"td style=">'o'
<vertical-align:top"'\u006f'
><td>를 사용하려면 출력을 base 8의 정수로 포맷해야 합니다. 지역화가 적용되지 않습니다.
x가 음수이면 결과는 ('\u002d'
)로 시작하는 부호 있는 값이 '-'
됩니다. 기본 형식과 달리 명시적 데이터 형식 크기를 가정하지 않고는 서명되지 않은 해당 형식을 만들 수 없으므로 이 형식에 대해 서명된 출력이 허용됩니다.
x가 양수이거나 0이고 플래그가 '+'
지정된 경우 결과는 ('\u002b'
)로 '+'
시작됩니다.
플래그가 '#'
지정된 경우 출력은 항상 접두사로 '0'
시작됩니다.
플래그가 '0'
지정되면 기호 표시에 따라 필드 너비에 대한 선행 0으로 출력이 채워집니다.
플래그가 ','
지정되면 throw FormatFlagsConversionMismatchException
됩니다.
<tr><th scope="row" style="vertical-align:top"td style=">'x'
<vertical-align:top"'\u0078'
><td>를 사용하려면 출력을 밑 16의 정수로 포맷해야 합니다. 지역화가 적용되지 않습니다.
x가 음수이면 결과는 ('\u002d'
)로 시작하는 부호 있는 값이 '-'
됩니다. 기본 형식과 달리 명시적 데이터 형식 크기를 가정하지 않고는 서명되지 않은 해당 형식을 만들 수 없으므로 이 형식에 대해 서명된 출력이 허용됩니다.
x가 양수이거나 0이고 플래그가 '+'
지정된 경우 결과는 ('\u002b'
)로 '+'
시작됩니다.
플래그가 '#'
지정되면 출력은 항상 radix 표시 "0x"
기로 시작됩니다.
플래그가 '0'
지정된 경우 출력은 radix 표시기 또는 기호(있는 경우) 뒤의 선행 0으로 필드 너비에 패딩됩니다.
플래그가 ','
지정되면 throw FormatFlagsConversionMismatchException
됩니다.
<tr><th scope="row" style="vertical-align:top"td style=">'X'
<vertical-align:top"'\u0058'
<>td> The upper-case variant of .'x'
숫자를 나타내는 전체 문자열은 (있는 경우) 및 모든 16진수 숫자()를 포함하여 'x'
String#toUpperCase 대문자로 변환됩니다'\u0061'
'a'
'\u0066'
- 'f'
- .
</tbody></table>
변환이 , 또는 플래그와 '0'
플래그가 모두 '#'
지정된 경우 결과에는 기본 표시기('0'
8진수 및 "0X"
"0x"
16진수), 일부 0(너비 기준) 및 값이 포함됩니다.'X'
'x'
'o'
플래그가 '0'
지정되고 값이 음수이면 기호 다음에 0 패딩이 발생합니다.
플래그가 '-'
지정되지 않으면 기호 앞에 공백 안쪽 여백이 발생합니다.
바이트, Short, Integer 및 Long에 대해 정의된 모든 플래그가 적용됩니다. 플래그가 지정되지 않은 경우의 기본 동작은 바이트, Short, Integer 및 Long과 동일합니다.
너비 사양은 바이트, Short, Integer 및 Long에 대해 정의된 것과 같습니다.
정밀도는 적용되지 않습니다. 전체 자릿수를 지정하면 throw IllegalFormatPrecisionException
됩니다.
"dndec"><b> Float and Double</b>
다음 변환은 , Float
double
및 Double
에 적용float
할 수 있습니다.
<table class="striped"><caption style="display:none">floatConv</caption><tbody>
<tr><th scope="row" style="vertical-align:top"td style=">'e'
<vertical-align:top"'\u0065'
<>td> "scientific">computerized scientific 표기법을 사용하여 출력의 형식을 지정해야 합니다. 지역화 알고리즘이 적용됩니다.
크기 m 의 서식은 해당 값에 따라 달라집니다.
m이 NaN 또는 infinite이면 각각 "NaN" 또는 "Infinity" 리터럴 문자열이 출력됩니다. 이러한 값은 지역화되지 않습니다.
m이 양수-0 또는 음수-0이면 지수가 됩니다"+00"
.
그렇지 않으면 결과는 인수의 부호와 크기(절대값)를 나타내는 문자열입니다. 기호의 서식은 지역화 알고리즘에 설명되어 있습니다. 크기 m 의 서식은 해당 값에 따라 달라집니다.
n은 10<sup>n</sup> <= m < 10<sup>n+1</sup와 같은 고유한 정수가> 되도록 하자. 그런 다음 1 <= a <가 되도록 m 및 10<sup>n</sup>의 수학적으로 정확한 몫이 되도록 합니다. 10. 크기는 다음의 정수 부분으로 표시됩니다. 10진수로, 소수 구분 기호 뒤에 10진수가 뒤에 10진수로 표시되고 그 뒤에 소문자 로캘별 java.text.DecimalFormatSymbols#getExponentSeparator 지수 구분 기호(예: 'e'
지수)가 뒤에 10진수로 표시되고 n이 10진수 정수로 표현 됩니다. 메서드Long#toString(long, int)
에 의해 생성되고 두 자리 이상을 포함하도록 패딩이 0인 경우
m 또는 a의 소수 부분에 대한 결과의 자릿수는 전체 자릿수와 같습니다. 전체 자릿수를 지정하지 않으면 기본값은 .입니다 6
. 전체 자릿수가 반환되거나 각각 반환 Float#toString(float)
Double#toString(double)
된 문자열의 소수점 다음에 나타나는 자릿수보다 작으면 java.math.RoundingMode#HALF_UP 반올림 알고리즘을 사용하여 값이 반올림됩니다. 그렇지 않으면 전체 자릿수에 도달하기 위해 0이 추가될 수 있습니다. 값의 정식 표현의 경우 사용하거나 Double#toString(double)
적절하게 사용합니다Float#toString(float)
.
플래그가 ','
지정 FormatFlagsConversionMismatchException
되면 throw됩니다.
<tr><th scope="row" style="vertical-align:top"td style=">'E'
<vertical-align:top"'\u0045'
<>td> The upper-case variant of .'e'
지수 기호는 대문자 로캘별 java.text.DecimalFormatSymbols#getExponentSeparator 지수 구분 기호(예: 'E'
)입니다.
<tr><th scope="row" style="vertical-align:top"td style=">'g'
<vertical-align:top"'\u0067'
><td> 아래에 설명된 대로 일반 과학적 표기법으로 출력의 서식을 지정해야 합니다. 지역화 알고리즘이 적용됩니다.
정밀도를 반올림한 후 결과 크기 m 의 서식은 해당 값에 따라 달라집니다.
m이 10<sup-4</sup>>보다 크거나 같지만 10<sup>precision</sup>보다 작으면 10진수 형식으로 표시됩니다.
m이 10<sup-4</sup>>보다 작거나 10<sup>precision</sup>보다 크거나 같으면 전산화된 과학적 표기법으로 표현됩니다.
m의 총 유효 자릿수는 전체 자릿수와 같습니다. 전체 자릿수를 지정하지 않으면 기본값은 .입니다 6
. 전체 자릿수가 0
면 .로 이동됩니다 1
.
플래그가 '#'
지정되면 throw FormatFlagsConversionMismatchException
됩니다.
<tr><th scope="row" style="vertical-align:top"td style=">'G'
<vertical-align:top"'\u0047'
<>td> The upper-case variant of .'g'
<tr><th scope="row" style="vertical-align:top"td style=">'f'
<vertical-align:top"'\u0066'
<>td> "decimal">decimal 형식을 사용하여 출력의 서식을 지정해야 합니다. 지역화 알고리즘이 적용됩니다.
결과는 인수의 부호와 크기(절대값)를 나타내는 문자열입니다. 기호의 서식은 지역화 알고리즘에 설명되어 있습니다. 크기 m 의 서식은 해당 값에 따라 달라집니다.
m NaN 또는 infinite이면 리터럴 문자열 "NaN" 또는 "Infinity"가 각각 출력됩니다. 이러한 값은 지역화되지 않습니다.
크기는 앞에 0이 없는 m의 정수 부분으로 서식이 지정되고 그 뒤에 10진수 구분 기호가 뒤에 m의 소수 부분을 나타내는 10진수 이상입니다.
m 또는 a의 소수 부분에 대한 결과의 자릿수는 전체 자릿수와 같습니다. 전체 자릿수를 지정하지 않으면 기본값은 .입니다 6
. 전체 자릿수가 반환되거나 각각 반환 Float#toString(float)
Double#toString(double)
된 문자열의 소수점 다음에 나타나는 자릿수보다 작으면 java.math.RoundingMode#HALF_UP 반올림 알고리즘을 사용하여 값이 반올림됩니다. 그렇지 않으면 전체 자릿수에 도달하기 위해 0이 추가될 수 있습니다. 값의 정식 표현의 경우 사용하거나 Double#toString(double)
적절하게 사용합니다Float#toString(float)
.
<tr><th scope="row" style="vertical-align:top">'a'
<td style="vertical-align:top"'\u0061'
><td>를 사용하려면 출력의 형식을 16진수 지수 형식으로 지정해야 합니다. 지역화가 적용되지 않습니다.
결과는 인수 x의 부호와 크기(절대값)를 나타내는 문자열입니다.
x가 음수이거나 음수-0 값이면 결과가 ('\u002d'
)로 '-'
시작됩니다.
x가 양수이거나 양수-0 값이고 플래그가 '+'
지정된 경우 결과는 ('\u002b'
)로 '+'
시작됩니다.
크기 m 의 서식은 해당 값에 따라 달라집니다.
<ul>
<li> 값이 NaN 또는 infinite이면 리터럴 문자열 "NaN" 또는 "Infinity"가 각각 출력됩니다.
<li> m이 0이면 문자열"0x0.0p0"
로 표시됩니다.
<li> m이 double
정규화된 표현이 있는 값이면 부분 문자열을 사용하여 중요 및 지수 필드를 나타냅니다. significand는 문자 "0x1."
로 표현된 다음, 나머지 유의성의 16진수 표현을 분수로 나타냅니다. 지수는 지수 값을 호출 Integer#toString(int) Integer.toString
하여 'p'
생성된 것처럼 ('\u0070'
) 뒤에 편견이 없는 지수의 10진수 문자열로 표시됩니다. 전체 자릿수를 지정하면 값이 지정된 16진수 숫자로 반올림됩니다.
<li m이 하위 표현을 가진 값이면 전체 자릿수가 1에서 12 사이의 범위에 포함되도록 지정되지 않는 한, significand는 16진수로 표시된 나머지의 16진수 표현 뒤에 문자로 표현 '0x0.'
되고, 지수는 소수로 표현됩니다'p-1022'
.double
> 전체 자릿수가 간격 [1, 12], 하위 값은 문자 '0x1.'
로 시작하여 정밀도의 16진수 수로 반올림되고 그에 따라 지수가 조정되도록 정규화됩니다. 음수에 0이 아닌 숫자가 하나 이상 있어야 합니다.
</ul>
또는 ','
플래그가 '('
지정되면 throw FormatFlagsConversionMismatchException
됩니다.
<tr><th scope="row" style="vertical-align:top"td style=">'A'
<vertical-align:top"'\u0041'
<>td> The upper-case variant of .'a'
숫자를 나타내는 전체 문자열은 () 및 ('\u0078'
및 모든 16진수('\u0066'
- '\u0061'
)를 포함하여 'x'
대문자로 변환됩니다'f'
- 'a'
.'p'
'\u0070'
</tbody></table>
바이트, Short, Integer 및 Long에 대해 정의된 모든 플래그가 적용됩니다.
플래그가 '#'
지정되면 10진수 구분 기호가 항상 존재합니다.
"floatdFlags"> 플래그가 지정되지 않은 경우 기본 서식은 다음과 같습니다.
<ul>
<li> 출력은 li 음수로 시작하는 '-'
<> li> 음수 내에서 width
<오른쪽 맞춤되고 양수 0은 부호 또는 추가 선행 공간을 포함하지 않습니다.
<li> 그룹화 구분 기호가 포함되지 않음
<li> 소수 구분 기호는 숫자가 뒤에 오는 경우에만 표시됩니다.
</ul>
"floatDWidth"> 너비는 출력에 쓸 최소 문자 수입니다. 여기에는 무한대와 NaN을 나타내는 기호, 숫자, 그룹 구분 기호, 소수 구분 기호, 지수 기호, 반지름 표시기, 괄호 및 문자열이 포함됩니다. 변환된 값의 길이가 너비보다 작으면 총 문자 수가 너비와 같을 때까지 출력이 공백('\u0020'
)으로 채워집니다. 패딩은 기본적으로 왼쪽에 있습니다. 플래그가 '-'
지정되면 안쪽 여백이 오른쪽에 있습니다. 너비를 지정하지 않으면 최소값이 없습니다.
"floatDPrec"> 변환이 'e'
'E'
또는 'f'
전체 자릿수가 소수 구분 기호 뒤의 자릿수인 경우 전체 자릿수를 지정하지 않으면 .로 간주됩니다 6
.
변환인 'g'
'G'
경우 전체 자릿수는 반올림 후 결과 크기의 총 유효 자릿수입니다. 전체 자릿수를 지정하지 않으면 기본값은 .입니다 6
. 전체 자릿수가 0
면 .로 이동됩니다 1
.
변환이 'a'
또는 'A'
전체 자릿수인 경우 전체 자릿수는 반지름 점 뒤의 16진수 숫자입니다. 전체 자릿수가 제공되지 않으면 반환 Double#toHexString(double)
된 모든 숫자가 출력됩니다.
"dnbdec"><b> BigDecimal </b>
다음 변환을 적용 java.math.BigDecimal BigDecimal
할 수 있습니다.
<table class="striped"><caption style="display:none">floatConv</caption><tbody>
<tr><th scope="row" style="vertical-align:top"td style=">'e'
<vertical-align:top"'\u0065'
<>td> "bscientific">전산화된 과학적 표기법을 사용하여 출력의 형식을 지정해야 합니다. 지역화 알고리즘이 적용됩니다.
크기 m 의 서식은 해당 값에 따라 달라집니다.
m이 양수-0 또는 음수-0이면 지수가 됩니다"+00"
.
그렇지 않으면 결과는 인수의 부호와 크기(절대값)를 나타내는 문자열입니다. 기호의 서식은 지역화 알고리즘에 설명되어 있습니다. 크기 m 의 서식은 해당 값에 따라 달라집니다.
n은 10<sup>n</sup> <= m < 10<sup>n+1</sup와 같은 고유한 정수가> 되도록 하자. 그런 다음 1 <= a <가 되도록 m 및 10<sup>n</sup>의 수학적으로 정확한 몫이 되도록 합니다. 10. 그런 다음, 진도는 a의 정수 부분으로 표현되고, 10진수 구분 기호 뒤에 10진수 구분 기호, 그 뒤에 지수 기호 'e'
('\u0065'
)를 나타내는 소수 자릿수, 지수 기호, n을 10진수 정수로 Long#toString(long, int)
표현합니다. 두 자리 이상을 포함하려면 0으로 채워 줍니다.
m 또는 a의 소수 부분에 대한 결과의 자릿수는 전체 자릿수와 같습니다. 전체 자릿수를 지정하지 않으면 기본값은 .입니다 6
. 전체 자릿수가 소수점 오른쪽의 자릿수보다 작으면 java.math.RoundingMode#HALF_UP 반올림 알고리즘을 사용하여 값이 반올림됩니다. 그렇지 않으면 전체 자릿수에 도달하기 위해 0이 추가될 수 있습니다. 값을 정식으로 표현하려면 .를 사용합니다 BigDecimal#toString()
.
플래그가 ','
지정 FormatFlagsConversionMismatchException
되면 throw됩니다.
<tr><th scope="row" style="vertical-align:top"td style=">'E'
<vertical-align:top"'\u0045'
<>td> The upper-case variant of .'e'
지수 기호는 ('\u0045'
)입니다 'E'
.
<tr><th scope="row" style="vertical-align:top"td style=">'g'
<vertical-align:top"'\u0067'
><td> 아래에 설명된 대로 일반 과학적 표기법으로 출력의 서식을 지정해야 합니다. 지역화 알고리즘이 적용됩니다.
정밀도를 반올림한 후 결과 크기 m 의 서식은 해당 값에 따라 달라집니다.
m이 10<sup-4</sup>>보다 크거나 같지만 10<sup>precision</sup>보다 작으면 10진수 형식으로 표시됩니다.
m이 10<sup-4</sup>>보다 작거나 10<sup>precision</sup>보다 크거나 같으면 전산화된 과학적 표기법으로 표현됩니다.
m의 총 유효 자릿수는 전체 자릿수와 같습니다. 전체 자릿수를 지정하지 않으면 기본값은 .입니다 6
. 전체 자릿수가 0
면 .로 이동됩니다 1
.
플래그가 '#'
지정되면 throw FormatFlagsConversionMismatchException
됩니다.
<tr><th scope="row" style="vertical-align:top"td style=">'G'
<vertical-align:top"'\u0047'
<>td> The upper-case variant of .'g'
<tr><th scope="row" style="vertical-align:top"td style=">'f'
<vertical-align:top"'\u0066'
<>td> "bdecimal">decimal 형식을 사용하여 출력의 서식을 지정해야 합니다. 지역화 알고리즘이 적용됩니다.
결과는 인수의 부호와 크기(절대값)를 나타내는 문자열입니다. 기호의 서식은 지역화 알고리즘에 설명되어 있습니다. 크기 m 의 서식은 해당 값에 따라 달라집니다.
크기는 앞에 0이 없는 m의 정수 부분으로 서식이 지정되고 그 뒤에 10진수 구분 기호가 뒤에 m의 소수 부분을 나타내는 10진수 이상입니다.
m 또는 a의 소수 부분에 대한 결과의 자릿수는 전체 자릿수와 같습니다. 전체 자릿수를 지정하지 않으면 기본값은 .입니다 6
. 전체 자릿수가 소수점 오른쪽의 자릿수보다 작으면 java.math.RoundingMode#HALF_UP 반올림 알고리즘을 사용하여 값이 반올림됩니다. 그렇지 않으면 전체 자릿수에 도달하기 위해 0이 추가될 수 있습니다. 값을 정식으로 표현하려면 .를 사용합니다 BigDecimal#toString()
.
</tbody></table>
바이트, Short, Integer 및 Long에 대해 정의된 모든 플래그가 적용됩니다.
플래그가 '#'
지정되면 10진수 구분 기호가 항상 존재합니다.
플래그가 지정되지 않은 경우의 기본 동작은 Float 및 Double과 동일합니다.
너비와 정밀도의 사양은 Float 및 Double에 대해 정의된 것과 같습니다.
<h4>"ddt">Date/Time</h4>
이 변환은 , Long
및 TemporalAccessor TemporalAccessor
Calendar
Date
<table class="striped"caption style="<>display:none">DTConv</caption<>tbody에 적용될 long
수 있습니다.>
<tr><th scope="row" style="vertical-align:top">'t'
<td style="vertical-align:top"'\u0074'
><td> Prefix for date and time conversion characters. <tr><th scope="row" style="vertical-align:top"td style=">'T'
<vertical-align:top"'\u0054'
<>td> The upper-case variant of .'t'
</tbody></table>
다음 날짜 및 시간 변환 문자 접미사는 변환에 't'
'T'
대해 정의됩니다. 형식은 GNU date
및 POSIX strftime(3c)
에서 정의한 형식과 비슷하지만 완전히 동일하지는 않습니다. Java 관련 기능에 액세스하기 위해 추가 변환 형식이 제공됩니다(예: 'L'
두 번째 기능의 경우 밀리초).
다음 변환 문자는 서식 지정 시간에 사용됩니다.
<table class="striped"><caption style="display:none">time</caption><tbody>
<tr><th scope="row" style="vertical-align:top"td style="'H'
<>vertical-align:top">'\u0048'
<td> Hour for the day for the 24-hour clock, formatted as the two digits with the leading zero as necessary 00 - 23
as necessary. 즉00
, midnight에 해당합니다.
<tr><th scope="row" style="vertical-align:top"td style=">'I'
<vertical-align:top"'\u0049'
<>td> Hour for the 12-hour clock, formatted as the two digits with the leading zero as necessary, 즉 . 01 - 12
01
는 1시(오전 또는 오후)에 해당합니다.
<tr><th scope="row" style="vertical-align:top"td style="'k'
<>vertical-align:top">'\u006b'
<td> Hour of the day for the 24-hour clock( 즉0 - 23
0
, 자정에 해당).
<tr><th scope="row" style="vertical-align:top"td style="'l'
<>vertical-align:top">'\u006c'
<td> Hour for the 12-hour clock( 즉1 - 12
1
, 1시 또는 오후)에 해당합니다.
<tr><th scope="row" style="vertical-align:top"td style=">'M'
<vertical-align:top"'\u004d'
<>td Minute(시간 내의 td> 분)은 필요에 따라 앞에 0이 있는 두 자리로 서식이 지정됩니다. 00 - 59
즉.
<tr><th scope="row" style="vertical-align:top"td style="'S'
<>vertical-align:top">'\u0053'
<td> Seconds in the minute, formatted as the two digits with the leading zero as required, 즉 00 - 60
("60
"is a special value required to support leap seconds).
<tr><th scope="row" style="vertical-align:top"td style=">'L'
<vertical-align:top"'\u004c'
<>td Millisecond> within the second within the second formatted as three digits with leading zeros as necessary, 즉 . 000 - 999
<tr><th scope="row" style="vertical-align:top"td style=">'N'
<vertical-align:top"'\u004e'
<>td Nanosecond> within the second, formatted as 9 digits with leading zeros as necessary, 즉 . 000000000 - 999999999
이 값의 정밀도는 기본 운영 체제 또는 하드웨어의 해상도에 의해 제한됩니다.
<tr><th scope="row" style="vertical-align:top"td style=">'p'
<vertical-align:top"'\u0070'
<>td> Locale-specific java.text.DateFormatSymbols#getAmPmStrings morning or afternoon marker in lower case, 예: ""am
또는 "pm
"입니다. 변환 접두사를 'T'
사용하면 이 출력이 대문자로 강제 적용합니다. 'p'
(소문자 출력을 생성합니다. 대문자 출력을 생성하는 GNU date
및 POSIX strftime(3c)
와 다릅니다.)
<tr><th scope="row" style="vertical-align:top"td style="'z'
<>vertical-align:top"<'\u007a'
>td>RFC 822 style numeric time zone offset from GMT, 예: . -0800
이 값은 일광 절약 시간에 필요한 대로 조정됩니다. 의 Long
경우 long
사용되는 Date
표준 시간대는 Java 가상 머신의 이 인스턴스에 대한 TimeZone#getDefault() 기본 표준 시간대입니다.
<tr><th scope="row" style="vertical-align:top">'Z'
<td style="vertical-align:top"'\u005a'
><td> 표준 시간대의 약어를 나타내는 문자열입니다. 이 값은 일광 절약 시간에 필요한 대로 조정됩니다. 의 Long
경우 long
사용되는 Date
표준 시간대는 Java 가상 머신의 이 인스턴스에 대한 TimeZone#getDefault() 기본 표준 시간대입니다. Formatter의 로캘은 인수의 로캘을 대체합니다(있는 경우).
<tr><th scope="row" style="vertical-align:top"td style="'s'
><vertical-align:top"'\u0073'
><td> Seconds 이후 Epoch 시작 1970 00:00:00
년 1월 1일 UTC, 즉 . Long.MIN_VALUE/1000
Long.MAX_VALUE/1000
<tr><th scope="row" style="vertical-align:top"td style="<'Q'
>vertical-align:top"<'\u004f'
>td Milliseconds> since the epoch starting at 1 january 1970 00:00:00
UTC, 즉 . Long.MIN_VALUE
Long.MAX_VALUE
이 값의 정밀도는 기본 운영 체제 또는 하드웨어의 해상도에 의해 제한됩니다.
</tbody></table>
다음 변환 문자는 날짜 서식 지정에 사용됩니다.
<table class="striped"><caption style="display:none">date</caption><tbody>
<tr><th scope="row" style="vertical-align:top"td style="'B'
<>vertical-align:top">'\u0042'
<td> Locale-specific java.text.DateFormatSymbols#getMonths full month name, 예: . "February"
"January"
<tr><th scope="row" style="vertical-align:top"td style="'b'
<>vertical-align:top">'\u0062'
<td> Locale-specific java.text.DateFormatSymbols#getShortMonths abbreviated month name, 예: . "Feb"
"Jan"
<tr><th scope="row" style="vertical-align:top"td style=">'h'
<vertical-align:top"'\u0068'
<>td> Same as .'b'
<tr><th scope="row" style="vertical-align:top"td style=">'A'
<vertical-align:top"<'\u0041'
>td> Locale-specific full name of the java.text.DateFormatSymbols#getWeekdays day, 예: "Sunday"
,<"Monday"
tr><th scope="row" style="vertical-align:top"<'a'
>td style="vertical-align:top"<'\u0061'
>td> Locale-specific short name of the java.text.DateFormatSymbols#getShortWeekdays day of the week, 예: "Sun"
, "Mon"
<tr><th scope="row" style="vertical-align:top"td style=">'C'
<vertical-align:top"<>'\u0043'
td> Four-digit year를 구분하여100
, 필요에 따라 앞에 0이 있는 두 자리로 서식이 지정됩니다. 즉00 - 99
<, tr><th scope="row" style="vertical-align:top">'Y'
<td style="vertical-align:top">'\u0059'
<td> Year, 필요에 따라 앞에 오는 0이 있는 4자리 이상으로 서식이 지정됩니다. 예: 0092
그레고리력의 CE와 같습니다.92
<tr><th scope="row" style="vertical-align:top"td style=">'y'
<vertical-align:top"'\u0079'
<>td> Last Two digits of the year, 즉 필요에 따라 선행 0으로 서식이 지정됩니다. 00 - 99
<tr><th scope="row" style="vertical-align:top"td style=">'j'
<vertical-align:top"'\u006a'
<>td> Day of year, 예를 들어 그레고리오력의 경우와 같이 001 - 366
필요에 따라 선행 0으로 세 자리로 서식이 지정됩니다. 001
는 해당 연도의 첫 번째 날에 해당합니다.
<tr><th scope="row" style="vertical-align:top"td style="'m'
><vertical-align:top"><'\u006d'
td> Month, 필요에 따라 앞에 오는 0이 있는 두 자리로 형식이 지정됩니다. 즉01 - 13
, "01
"는 연도의 첫 번째 달이며(""13
는 음력 달력을 지원하는 데 필요한 특수 값임).
<tr><th scope="row" style="vertical-align:top"td style="'d'
<>vertical-align:top">'\u0064'
<td> Day of month, 필요에 따라 앞에 오는 0이 있는 두 자리로 서식이 지정됩니다. 즉01 - 31
, 여기서 "01
"는 월의 첫 번째 날입니다.
<tr><th scope="row" style="vertical-align:top"td style="'e'
<>vertical-align:top">'\u0065'
<td> Day of month, 즉 "1
"가 월의 첫 번째 날인 경우 두 자리 숫자 1 - 31
로 서식이 지정됩니다.
</tbody></table>
다음 변환 문자는 공통 날짜/시간 컴퍼지션의 서식을 지정하는 데 사용됩니다.
<table class="striped"><caption style="display:none">composites</caption><tbody>
<tr><th scope="row" style="vertical-align:top"td style="'R'
><vertical-align:top"'\u0052'
><td> Time formatted for the 24-time as<"%tH:%tM"
tr><th scope="row" style="vertical-align:top"<'T'
>td style="vertical-align:top"'\u0054'
<>td> Time formatted for the 24-time "%tH:%tM:%tS"
as .
<tr><th scope="row" style="vertical-align:top"'r'
><td style="vertical-align:top"'\u0072'
<>td> Time formatted for the 12-hour clock as ."%tI:%tM:%tS %Tp"
아침 또는 오후 표식('%Tp'
)의 위치는 로캘에 따라 달라질 수 있습니다.
<tr><th scope="row" style="vertical-align:top"'D'
><td style="vertical-align:top"'\u0044'
<>td> Date formatted as ."%tm/%td/%ty"
<tr><th scope="row" style="vertical-align:top"'F'
<>td style="vertical-align:top"<'\u0046'
>td>ISO 8601 complete date formatted ."%tY-%tm-%td"
<tr><th scope="row" style="vertical-align:top">'c'
<td style="vertical-align:top">'\u0063'
<td> Date and time formatted as, "%ta %tb %td %tT %tZ %tY"
예: . "Sun Jul 20 16:17:00 EDT 1969"
</tbody></table>
'-'
일반 변환에 대해 정의된 플래그가 적용됩니다. 플래그가 '#'
지정되면 throw FormatFlagsConversionMismatchException
됩니다.
너비는 출력에 쓸 최소 문자 수입니다. 변환된 값의 길이가 보다 width
작으면 총 문자 수가 너비와 같을 때까지 출력이 공백('\u0020'
)으로 채워집니다. 패딩은 기본적으로 왼쪽에 있습니다. 플래그가 '-'
지정되면 안쪽 여백이 오른쪽에 있습니다. 너비를 지정하지 않으면 최소값이 없습니다.
정밀도는 적용되지 않습니다. 전체 자릿수를 지정하면 throw IllegalFormatPrecisionException
됩니다.
<h4>"dper">Percent</h4>
변환은 인수에 해당하지 않습니다.
<table class="striped"><caption style="display:none">DTConv</caption><tbody>
<tr><th scope="row" style="vertical-align:top"'%'
<>td> 결과는 리터럴 '%'
()'\u0025'
너비는 을 포함하여 출력에 쓸 최소 문자 수입니다 '%'
. 변환된 값의 길이가 보다 width
작으면 총 문자 수가 너비와 같을 때까지 출력이 공백('\u0020'
)으로 채워집니다. 안쪽 여백은 왼쪽에 있습니다. 너비를 지정하지 않으면 출력만 '%'
표시됩니다.
'-'
일반 변환에 대해 정의된 플래그가 적용됩니다. 다른 플래그가 제공되면 throw FormatFlagsConversionMismatchException
됩니다.
정밀도는 적용되지 않습니다. 정밀도를 지정 IllegalFormatPrecisionException
하면 throw됩니다.
</tbody></table>
<h4>"dls">줄 구분 기호</h4>
변환은 인수에 해당하지 않습니다.
<table class="striped"><caption style="display:none">DTConv</caption><tbody>
<tr><th scope="row" style="vertical-align:top"><'n'
td> the platform-specific line separator as returned by .System#lineSeparator()
</tbody></table>
플래그, 너비 및 정밀도는 적용할 수 없습니다. 제공된 IllegalFormatFlagsException
경우 , IllegalFormatWidthException
및 IllegalFormatPrecisionException
각각이 throw됩니다.
<h4>"dpos">Argument Index</h4>
형식 지정자는 다음 세 가지 방법으로 인수를 참조할 수 있습니다.
<ul>
<li>Explicit 인덱싱 은 형식 지정자에 인수 인덱스가 포함될 때 사용됩니다. 인수 인덱스는 인수 목록에서 인수의 위치를 나타내는 10진수 정수입니다. 첫 번째 인수는 "1$
", 두 번째 인수는 "2$
"로 참조됩니다. 인수를 두 번 이상 참조할 수 있습니다.
예시:
<blockquote>
formatter.format("%4$s %3$s %2$s %1$s %4$s %3$s %2$s %1$s",
"a", "b", "c", "d")
// -> "d c b a d c b a"
</blockquote>
<li>Relative 인덱싱은 형식 지정자에 이전 형식 지정자에 대한 인수를 다시 사용하도록 하는 ('\u003c'
) 플래그가 포함되어 '<'
있을 때 사용됩니다. 이전 인수가 없으면 throw MissingFormatArgumentException
됩니다.
<blockquote>
formatter.format("%s %s %<s %<s", "a", "b", "c", "d")
// -> "a b b b"
// "c" and "d" are ignored because they are not referenced
</blockquote>
<li>일반 인덱싱 은 형식 지정자에 인수 인덱스나 '<'
플래그가 포함되지 않은 경우에 사용됩니다. 일반 인덱싱을 사용하는 각 형식 지정자에는 명시적 또는 상대 인덱싱에 사용되는 인덱스와 무관한 순차적 암시적 인덱스가 인수 목록에 할당됩니다.
<blockquote>
formatter.format("%s %s %s %s", "a", "b", "c", "d")
// -> "a b c d"
</blockquote>
</ul>
예를 들어 모든 형태의 인덱싱을 사용하는 형식 문자열을 사용할 수 있습니다.
<blockquote>
formatter.format("%2$s %s %<s %s", "a", "b", "c", "d")
// -> "b a a b"
// "c" and "d" are ignored because they are not referenced
</blockquote>
인수의 최대 수는 Java>를 인용>하여 정의한 대로 Java 배열의 최대 차원으로 <제한됩니다. Virtual Machine 사양</인용>. 인수 인덱스가 사용 가능한 인수에 해당하지 않으면 throw MissingFormatArgumentException
됩니다.
형식 지정자보다 더 많은 인수가 있는 경우 추가 인수는 무시됩니다.
달리 지정하지 않는 한 이 클래스의 null
메서드 또는 생성자에 인수를 전달하면 throw NullPointerException
됩니다.
1.5에 추가되었습니다.
에 대한 java.util.Formatter
Java 설명서
이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.
생성자
Formatter() |
새 포맷터를 생성합니다. |
Formatter(File) |
지정된 파일을 사용하여 새 포맷터를 생성합니다. |
Formatter(File, Charset, Locale) |
지정된 파일, 문자 집합 및 로캘을 사용하여 새 포맷터를 생성합니다. |
Formatter(File, String) |
지정된 파일 및 문자 집합을 사용하여 새 포맷터를 생성합니다. |
Formatter(File, String, Locale) |
지정된 파일, 문자 집합 및 로캘을 사용하여 새 포맷터를 생성합니다. |
Formatter(IAppendable) |
지정된 대상을 사용하여 새 포맷터를 생성합니다. |
Formatter(IAppendable, Locale) |
지정된 대상 및 로캘을 사용하여 새 포맷터를 생성합니다. |
Formatter(Locale) |
지정된 로캘을 사용하여 새 포맷터를 생성합니다. |
Formatter(PrintStream) |
지정한 인쇄 스트림을 사용하여 새 포맷터를 생성합니다. |
Formatter(Stream) |
지정된 출력 스트림을 사용하여 새 포맷터를 생성합니다. |
Formatter(Stream, Charset, Locale) |
지정된 출력 스트림, 문자 집합 및 로캘을 사용하여 새 포맷터를 생성합니다. |
Formatter(Stream, String) |
지정된 출력 스트림 및 문자 집합을 사용하여 새 포맷터를 생성합니다. |
Formatter(Stream, String, Locale) |
지정된 출력 스트림, 문자 집합 및 로캘을 사용하여 새 포맷터를 생성합니다. |
Formatter(String) |
지정된 파일 이름을 사용하여 새 포맷터를 생성합니다. |
Formatter(String, Charset, Locale) |
지정된 파일 이름, 문자 집합 및 로캘을 사용하여 새 포맷터를 생성합니다. |
Formatter(String, String) |
지정된 파일 이름과 문자 집합을 사용하여 새 포맷터를 생성합니다. |
Formatter(String, String, Locale) |
지정된 파일 이름, 문자 집합 및 로캘을 사용하여 새 포맷터를 생성합니다. |
속성
Class |
이 |
Handle |
기본 Android 인스턴스에 대한 핸들입니다. (다음에서 상속됨 Object) |
JniIdentityHashCode |
printf 스타일 형식 문자열의 인터프리터입니다. (다음에서 상속됨 Object) |
JniPeerMembers |
printf 스타일 형식 문자열의 인터프리터입니다. |
PeerReference |
printf 스타일 형식 문자열의 인터프리터입니다. (다음에서 상속됨 Object) |
ThresholdClass |
이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. (다음에서 상속됨 Object) |
ThresholdType |
이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. (다음에서 상속됨 Object) |
메서드
Clone() |
이 개체의 복사본을 만들고 반환합니다. (다음에서 상속됨 Object) |
Close() |
이 포맷터를 닫습니다. |
Dispose() |
printf 스타일 형식 문자열의 인터프리터입니다. (다음에서 상속됨 Object) |
Dispose(Boolean) |
printf 스타일 형식 문자열의 인터프리터입니다. (다음에서 상속됨 Object) |
Equals(Object) |
다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다. (다음에서 상속됨 Object) |
Flush() |
이 포맷터를 플러시합니다. |
Format(Locale, String, Object[]) |
지정된 형식 문자열 및 인수를 사용하여 서식이 지정된 문자열을 이 개체의 대상에 씁니다. |
Format(String, Object[]) |
지정된 형식 문자열 및 인수를 사용하여 서식이 지정된 문자열을 이 개체의 대상에 씁니다. |
GetHashCode() |
개체에 대한 해시 코드 값을 반환합니다. (다음에서 상속됨 Object) |
IoException() |
이 포맷터 |
JavaFinalize() |
가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다. (다음에서 상속됨 Object) |
Locale() |
이 포맷터를 생성하여 설정한 로캘을 반환합니다. |
Notify() |
이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다. (다음에서 상속됨 Object) |
NotifyAll() |
이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다. (다음에서 상속됨 Object) |
Out() |
출력의 대상을 반환합니다. |
SetHandle(IntPtr, JniHandleOwnership) |
Handle 속성을 설정합니다. (다음에서 상속됨 Object) |
ToArray<T>() |
printf 스타일 형식 문자열의 인터프리터입니다. (다음에서 상속됨 Object) |
ToString() |
개체의 문자열 표현을 반환합니다. (다음에서 상속됨 Object) |
UnregisterFromRuntime() |
printf 스타일 형식 문자열의 인터프리터입니다. (다음에서 상속됨 Object) |
Wait() |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 <><중단/종료>합니다.> (다음에서 상속됨 Object) |
Wait(Int64) |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다. (다음에서 상속됨 Object) |
Wait(Int64, Int32) |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다. (다음에서 상속됨 Object) |
명시적 인터페이스 구현
IJavaPeerable.Disposed() |
printf 스타일 형식 문자열의 인터프리터입니다. (다음에서 상속됨 Object) |
IJavaPeerable.DisposeUnlessReferenced() |
printf 스타일 형식 문자열의 인터프리터입니다. (다음에서 상속됨 Object) |
IJavaPeerable.Finalized() |
printf 스타일 형식 문자열의 인터프리터입니다. (다음에서 상속됨 Object) |
IJavaPeerable.JniManagedPeerState |
printf 스타일 형식 문자열의 인터프리터입니다. (다음에서 상속됨 Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
printf 스타일 형식 문자열의 인터프리터입니다. (다음에서 상속됨 Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
printf 스타일 형식 문자열의 인터프리터입니다. (다음에서 상속됨 Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
printf 스타일 형식 문자열의 인터프리터입니다. (다음에서 상속됨 Object) |
확장 메서드
JavaCast<TResult>(IJavaObject) |
Android 런타임 확인 형식 변환을 수행합니다. |
JavaCast<TResult>(IJavaObject) |
printf 스타일 형식 문자열의 인터프리터입니다. |
GetJniTypeName(IJavaPeerable) |
printf 스타일 형식 문자열의 인터프리터입니다. |
FlushAsync(IFlushable) |
printf 스타일 형식 문자열의 인터프리터입니다. |