|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 모든 클래스 | ||||||||||
개요: 상자 | 필드 | constructor | 메소드 | 상세: 필드 | constructor | 메소드 |
java.lang.Object | +--java.text.Format | +--java.text.MessageFormat
MessageFormat
는 연결된 메세지를, 언어에 의존하지 않는 방법으로 구축하기 위한의 것입니다. 최종 사용자용으로 표시하는 메세지는 이 방법으로 구축해 주세요.
MessageFormat
는 1 조의 오브젝트를 포맷 해, 포맷 한 캐릭터 라인을 패턴의 적절한 장소에 삽입합니다.
주:
MessageFormat
가 다른 Format
클래스와 다른 점은 MessageFormat
오브젝트를 (getInstance
스타일의 팩토리 메소드는 아니고) 그 constructor 의 1 개로 작성한다고 하는 것입니다. MessageFormat
에서는 로케일 고유의 동작은 구현되어 있지 않기 때문에, 팩토리 메소드는 필요 없습니다. 로케일 고유의 동작은 제공하는 패턴 및 삽입된 인수에 사용하는 서브 포맷에 의해 정의됩니다.
MessageFormat
는 다음의 패턴을 사용합니다.
MessageFormatPattern: String MessageFormatPattern FormatElement String FormatElement: { ArgumentIndex } { ArgumentIndex , FormatType } { ArgumentIndex , FormatType , FormatStyle } FormatType: one of number date time choice FormatStyle: short medium long full integer currency percent SubformatPattern String: StringPartopt String StringPart StringPart: '' ' QuotedString ' UnquotedString SubformatPattern: SubformatPatternPartopt SubformatPattern SubformatPatternPart SubFormatPatternPart: ' QuotedPattern ' UnquotedPattern
String 내에서는 "''"
는 단일 인용부호를 나타냅니다. QuotedString 는 단일 인용부호를 제외한 임의의 캐릭터를 포함합니다. 둘러싸고 있는 단일 인용부호는 삭제됩니다. UnquotedString 는 단일 인용부호와 왼쪽대괄호를 제외한 임의의 캐릭터를 포함합니다. 따라서, 포맷 된 메세지로 "'{0}'" 가 되는 캐릭터 라인은 "'''{'0}''"
또는 "'''{0}'''"
와 기술합니다.
SubformatPattern 내에서는 다른 룰이 적용됩니다. QuotedPattern 는 단일 인용부호 이외의 임의의 캐릭터를 포함합니다만, 둘러싸고 있는 단일 인용부호는 삭제되지 않습니다. 이 때문에 단일 인용부호는 서브 포맷에 의해 해석됩니다. 예를 들어,"{1, number,$'#',##}"
라고 지정하면(자), 해시 기호 (#)가 붙은 수치 포맷이 생성됩니다. 결과는 「$#31, 45」와 같이 됩니다. UnquotedPattern 는 단일 인용부호 이외의 임의의 캐릭터를 포함합니다만, 그 중안괄호는 페어가 되어 있을 필요가 있습니다. 예를 들어,"ab {0} de"
와 "ab '}' de"
는 유효한 서브 포맷 패턴입니다만,"ab {0'}' de"
와 "ab } de"
는 무효입니다.
ArgumentIndex 치는 숫자 0 ~ 9 를 사용해 기술한 0 이상의 정수입니다. format
메소드에게 건네진 arguments
배열 또는 parse
메소드에 의해 돌려주어진 결과의 배열의 인덱스를 나타냅니다.
FormatType 및 FormatStyle 치는 포맷 요소의 Format
인스턴스의 생성에 사용합니다. 다음의 겉(표)에, Format 인스턴스에의 값의 MAP에 대해 가리킵니다. 겉(표)에 없는 편성은 사용할 수 없습니다. SubformatPattern 는 사용하는 Format 서브 클래스에 대해서 유효한 패턴 캐릭터 라인이 아니면 안됩니다.
포맷 타입 | 포맷 스타일 | 생성되는 서브 포맷 |
---|---|---|
(없음) | null
| |
number
| (없음) | NumberFormat.getInstance(getLocale())
|
integer
| NumberFormat.getIntegerInstance(getLocale())
| |
currency
| NumberFormat.getCurrencyInstance(getLocale())
| |
percent
| NumberFormat.getPercentInstance(getLocale())
| |
SubformatPattern | new DecimalFormat(subformatPattern, new DecimalFormatSymbols(getLocale()))
| |
date
| (없음) | DateFormat.getDateInstance(DateFormat.DEFAULT, getLocale())
|
short
| DateFormat.getDateInstance(DateFormat.SHORT, getLocale())
| |
medium
| DateFormat.getDateInstance(DateFormat.DEFAULT, getLocale())
| |
long
| DateFormat.getDateInstance(DateFormat.LONG, getLocale())
| |
full
| DateFormat.getDateInstance(DateFormat.FULL, getLocale())
| |
SubformatPattern | new SimpleDateFormat(subformatPattern, getLocale())
| |
time
| (없음) | DateFormat.getTimeInstance(DateFormat.DEFAULT, getLocale())
|
short
| DateFormat.getTimeInstance(DateFormat.SHORT, getLocale())
| |
medium
| DateFormat.getTimeInstance(DateFormat.DEFAULT, getLocale())
| |
long
| DateFormat.getTimeInstance(DateFormat.LONG, getLocale())
| |
full
| DateFormat.getTimeInstance(DateFormat.FULL, getLocale())
| |
SubformatPattern | new SimpleDateFormat(subformatPattern, getLocale())
| |
choice
| SubformatPattern | new ChoiceFormat(subformatPattern)
|
이 사용예를 다음에 나타냅니다.
일반적으로, 메세지 포맷은 리소스로부터 주어져 인수는 실행시에 동적으로 설정됩니다.Object[] arguments = { new Integer(7), new Date(System.currentTimeMillis()), "a disturbance in the Force" }; String result = MessageFormat.format( "At {1, time} on {1, date}, there was {2} on planet {0, number, integer}. ", arguments); output: At 12:30 PM on Jul 3, 2053, there was a disturbance in the Force on planet 7.
례 2:
Object[] testArgs = {new Long(3), "MyDisk"}; MessageFormat form = new MessageFormat( "The disk \"{1}\" contains {0} file(s). "); System.out.println(form.format(testArgs)); // output, with different testArgs output: The disk "MyDisk" contains 0 file(s). output: The disk "MyDisk" contains 1 file(s). output: The disk "MyDisk" contains 1,273 file(s).
한층 더 복잡한 패턴의 경우,ChoiceFormat
를 사용해 다음과 같이 출력을 얻을 수도 있습니다.
이것은 위의 예의 같게 프로그램적으로 실시하는지 다음과 같이 패턴 (자세한 것은MessageFormat form = new MessageFormat("The disk \"{1}\" contains {0}. "); double[] filelimits = {0,1,2}; String[] filepart = {"no files","one file","{0, number} files"}; ChoiceFormat fileform = new ChoiceFormat(filelimits, filepart); form.setFormatByArgumentIndex(0, fileform); Object[] testArgs = {new Long(12373), "MyDisk"}; System.out.println(form.format(testArgs)); // output, with different testArgs output: The disk "MyDisk" contains no files. output: The disk "MyDisk" contains one file. output: The disk "MyDisk" contains 1,273 files.
ChoiceFormat
를 참조)을 사용해 실시할 수가 있습니다.
form.applyPattern( "There {0, choice, 0#are no files|1#is one file|1<are {0, number, integer} files}. ");
주: 전술과 같이,MessageFormat
의 ChoiceFormat
로 생성되는 캐릭터 라인은 특별히 처리됩니다. 복수의 것 { 을 사용해 서브 포맷을 나타내, 반복을 실시합니다. MessageFormat
와 ChoiceFormat
를 양쪽 모두 (캐릭터 라인 패턴은 아니고) 프로그램적으로 작성하는 경우에는 재귀적으로 반복하는 포맷을 작성하지 않게 주의해 주세요. 영구 루프가 됩니다.
1 개의 인수가 캐릭터 라인내에서 여러 차례 해석되면(자), 마지막에 일치하는 것이 해석의 최종 결과가 됩니다. 다음에 예를 나타냅니다.
MessageFormat mf = new MessageFormat("{0, number,#. ##}, {0, number,#. #}"); Object[] objs = {new Double(3.1415)}; String result = mf.format( objs ); // result now equals "3.14, 3.1" objs = null; objs = mf.parse(result, new ParsePosition(0)); // objs now equals {new Double(3.1)}
같이 같은 인수가 여러 차례 나오는 패턴을 사용해 MessageFormat 오브젝트를 해석하면(자), 마지막에 일치하는 것이 돌려주어집니다. 다음에 예를 나타냅니다.
MessageFormat mf = new MessageFormat("{0}, {0}, {0}"); String forParsing = "x, y, z"; Object[] objs = mf.parse(forParsing, new ParsePosition(0)); // result now equals {new String("z")}
메세지 포맷은 동기화 되지 않습니다. thread 마다 다른 포맷 인스턴스를 작성하는 것을 추천합니다. 복수의 thread가 포맷에 동시에 액세스 하는 경우는 외부적으로 동기화할 필요가 있습니다.
Locale
,
Format
,
NumberFormat
,
DecimalFormat
,
ChoiceFormat
,
직렬화 된 형식 중첩된 클래스의 개요 | |
static class |
MessageFormat.Field
MessageFormat.formatToCharacterIterator 로부터 돌려주어진 AttributedCharacterIterator 내의 속성 키로서 사용하는 정수를 정의합니다. |
클래스 java.text. Format 을 상속받은 중첩된 클래스 |
|
생성자의 개요 | |
MessageFormat (String pattern)
디폴트 로케일과 지정된 패턴을 위한 MessageFormat 를 구축합니다. |
|
MessageFormat (String pattern,
Locale locale)
지정된 로케일과 패턴을 위한 MessageFormat 를 구축합니다. |
메소드의 개요 | |
void |
applyPattern (String pattern)
이 메세지 포맷에 의해 사용되는 패턴을 설정합니다. |
Object |
clone ()
이 오브젝트의 카피를 작성해, 돌려줍니다. |
boolean |
equals (Object obj)
2 개의 메세지 포맷 오브젝트의 사이의 등호 비교입니다. |
StringBuffer |
format (Object [] arguments,
StringBuffer result,
FieldPosition pos)
오브젝트의 배열을 포맷 해, 제공된 StringBuffer 에, 포맷 요소를 포맷 된 오브젝트에 의해 옮겨놓아 MessageFormat 의 패턴을 추가합니다.
|
StringBuffer |
format (Object arguments,
StringBuffer result,
FieldPosition pos)
오브젝트의 배열을 포맷 해, 제공된 StringBuffer 에, 포맷 요소를 포맷 된 오브젝트로 옮겨놓아,MessageFormat 의 패턴을 추가합니다. |
static String |
format (String pattern,
Object [] arguments)
지정된 패턴을 사용해 MessageFormat 를 작성해, 그것을 사용해 지정된 인수를 포맷 합니다. |
AttributedCharacterIterator |
formatToCharacterIterator (Object arguments)
오브젝트의 배열을 포맷 해, 그것을 MessageFormat 의 패턴에 삽입해,AttributedCharacterIterator 를 생성합니다. |
Format [] |
getFormats ()
미리 설정된 패턴 캐릭터 라인내의 포맷 요소에 사용되는 포맷을 취득합니다. |
Format [] |
getFormatsByArgumentIndex ()
format 메소드에게 건네지는 값 또는 parse 메소드로부터 돌려주어진 값에 사용되는 포맷을 취득합니다. |
Locale |
getLocale ()
서브 포맷을 작성 또는 비교하는 경우에 사용되는 로케일을 취득합니다. |
int |
hashCode ()
메세지 포맷 오브젝트의 해시 코드를 생성합니다. |
Object [] |
parse (String source)
지정된 캐릭터 라인의 선두로부터 텍스트를 해석해 오브젝트 배열을 생성합니다. |
Object [] |
parse (String source,
ParsePosition pos)
캐릭터 라인을 해석합니다. |
Object |
parseObject (String source,
ParsePosition pos)
캐릭터 라인으로부터 텍스트를 해석해 오브젝트 배열을 생성합니다. |
void |
setFormat (int formatElementIndex,
Format newFormat)
미리 설정된 패턴 캐릭터 라인내의 지정된 포맷 요소 인덱스로, 포맷 요소에 사용하는 포맷을 설정합니다. |
void |
setFormatByArgumentIndex (int argumentIndex,
Format newFormat)
지정된 인수 인덱스를 사용한다, 미리 설정된 패턴 캐릭터 라인내의 포맷 요소에 사용하는 포맷을 설정합니다. |
void |
setFormats (Format [] newFormats)
미리 설정된 패턴 캐릭터 라인내의 포맷 요소에 사용하는 포맷을 설정합니다. |
void |
setFormatsByArgumentIndex (Format [] newFormats)
format 메소드에게 건네지는 값 또는 parse 메소드로부터 돌려주어진 값에 사용하는 포맷을 설정합니다. |
void |
setLocale (Locale locale)
서브 포맷을 작성 또는 비교하는 경우에 사용하는 로케일을 설정합니다. |
String |
toPattern ()
메세지 포맷의 현재 상태를 나타내는 패턴을 돌려줍니다. |
클래스 java.text. Format 에서 상속받은 메소드 |
format , parseObject |
클래스 java.lang. Object 에서 상속받은 메소드 |
finalize , getClass , notify , notifyAll , toString , wait , wait , wait |
생성자의 상세 |
public MessageFormat(String pattern)
pattern
- 이 메세지 포맷을 위한 패턴
IllegalArgumentException
- 패턴이 무효인 경우public MessageFormat(String pattern, Locale locale)
pattern
- 이 메세지 포맷을 위한 패턴locale
- 이 메세지 포맷을 위한 로케일
IllegalArgumentException
- 패턴이 무효인 경우메소드의 상세 |
public void setLocale(Locale locale)
applyPattern
및 toPattern
메소드와 format
및 formatToCharacterIterator
메소드에의 호출에 영향을 줍니다.
locale
- 서브 포맷을 작성 또는 비교하는 경우에 사용하는 로케일public Locale getLocale()
public void applyPattern(String pattern)
pattern
- 이 메세지 포맷을 위한 패턴
IllegalArgumentException
- 패턴이 무효인 경우public String toPattern()
public void setFormatsByArgumentIndex(Format [] newFormats)
format
메소드에게 건네지는 값 또는 parse
메소드로부터 돌려주어진 값에 사용하는 포맷을 설정합니다. newFormats
내의 요소의 인덱스는 미리 설정된 패턴 캐릭터 라인으로 사용되는 인수 인덱스에 대응합니다. 따라서,newFormats
내의 포맷의 순서는 format
메소드에게 건네진 arguments
배열 또는 parse
메소드에 의해 돌려주어진 결과의 배열내의 요소의 순서에 대응합니다.
인수 인덱스가 패턴 캐릭터 라인내에서 복수의 포맷 요소에 사용되는 경우, 대응하는 새로운 포맷이 그 모든 포맷 요소에 사용됩니다. 인수 인덱스가 캐릭터 라인내에서 어느 포맷 요소에도 사용되지 않는 경우는 대응하는 새로운 포맷은 무시됩니다. 제공된 포맷이 필요수에 못 미친 경우,newFormats.length
보다 적은 인수 인덱스에 대한 포맷만이 옮겨놓을 수 있습니다.
newFormats
- 사용하는 새로운 포맷
NullPointerException
- newFormats
가 null 의 경우public void setFormats(Format [] newFormats)
newFormats
내의 포맷의 순서는 패턴 캐릭터 라인내의 포맷 요소의 순서에 대응합니다.
패턴 캐릭터 라인으로 필요로 하는 것보다도 많은 포맷이 제공되었을 경우, 남은 포맷은 무시됩니다. 필요수에 못 미친 경우는 최초의 newFormats.length
만이 옮겨놓을 수 있습니다.
패턴 캐릭터 라인내의 포맷 요소의 순서는 지역 대응화의 처리 과정에서 변경되는 것이 많기 때문에, 통상은 setFormatsByArgumentIndex
메소드를 사용하는 (분)편이 효율적입니다. 이 메소드는 포맷의 순서를 format
메소드에게 건네진 arguments
배열 또는 parse
메소드에 의해 돌려주어진 결과의 배열내의 요소의 순서에 대응하는 것이라고 봅니다.
newFormats
- 사용하는 새로운 포맷
NullPointerException
- newFormats
가 null 의 경우public void setFormatByArgumentIndex(int argumentIndex, Format newFormat)
메소드에게 건네진 arguments
배열 또는 parse
메소드에 의해 돌려주어진 결과의 배열의 인덱스를 나타냅니다.
인수 인덱스가 패턴 캐릭터 라인내에서 복수의 포맷 요소에 사용되는 경우, 새로운 포맷이 그 모든 포맷 요소에 사용됩니다. 인수 인덱스가 캐릭터 라인내에서 어느 포맷 요소에도 사용되지 않는 경우는 새로운 포맷은 무시됩니다.
- 파라미터:
argumentIndex
- 새로운 포맷에 사용하기 위한 인수 인덱스newFormat
- 사용하는 새로운 포맷- 도입된 버젼:
- 1.4
setFormat
public void setFormat(int formatElementIndex,
Format newFormat)
- 미리 설정된 패턴 캐릭터 라인내의 지정된 포맷 요소 인덱스로, 포맷 요소에 사용하는 포맷을 설정합니다. 포맷 요소 인덱스는 패턴 캐릭터 라인의 선두로부터 카운트 한, 포맷 요소의 제로로부터 시작되는 숫자입니다.
패턴 캐릭터 라인내의 포맷 요소의 순서는 지역 대응화의 처리 과정에서 변경되는 것이 많기 때문에, 통상은 setFormatByArgumentIndex
메소드를 사용하는 (분)편이 효율적입니다. 이 메소드는 포맷 요소가 지정하는 인수 인덱스를 기본으로, 포맷 요소에 액세스 합니다.
- 파라미터:
formatElementIndex
- 패턴내의 포맷 요소의 인덱스newFormat
- 지정된 포맷 요소에 사용하는 포맷
- 예외:
ArrayIndexOutOfBoundsException
- formatElementIndex 가, 패턴 캐릭터 라인내의 포맷 요소의 수이상의 경우
getFormatsByArgumentIndex
public Format [] getFormatsByArgumentIndex()
format
메소드에게 건네지는 값 또는 parse
메소드로부터 돌려주어진 값에 사용되는 포맷을 취득합니다. 돌려주어진 배열내의 요소의 인덱스는 미리 설정된 패턴 캐릭터 라인으로 사용되는 인수 인덱스에 대응합니다. 따라서, 돌려주어진 배열내의 포맷의 순서는 format
메소드에게 건네진 arguments
배열 또는 parse
메소드에 의해 돌려주어진 결과의 배열내의 요소의 순서에 대응합니다.
인수 인덱스가 패턴 캐릭터 라인내에서 복수의 포맷 요소에 사용되는 경우, 그 마지막 포맷 요소로 사용되는 포맷이 배열에 돌려주어집니다. 인수 인덱스가 캐릭터 라인내에서 어느 포맷 요소에도 사용되지 않는 경우는 null 가 배열에 돌려주어집니다.
- 반환값:
- 패턴내의 인수에 사용되는 포맷
- 도입된 버젼:
- 1.4
getFormats
public Format [] getFormats()
- 미리 설정된 패턴 캐릭터 라인내의 포맷 요소에 사용되는 포맷을 취득합니다. 돌려주어지는 배열내의 포맷의 순서는 패턴 캐릭터 라인내의 포맷 요소의 순서에 대응합니다.
패턴 캐릭터 라인내의 포맷 요소의 순서는 지역 대응화의 처리 과정에서 변경되는 것이 많기 때문에, 통상은 getFormatsByArgumentIndex
메소드를 사용하는 (분)편이 효율적입니다. 이 메소드는 포맷의 순서를 format
메소드에게 건네진 arguments
배열 또는 parse
메소드에 의해 돌려주어진 결과의 배열내의 요소의 순서에 대응하는 것이라고 봅니다.
- 반환값:
- 패턴내의 포맷 요소에 사용되는 포맷
format
public final StringBuffer format(Object [] arguments,
StringBuffer result,
FieldPosition pos)
- 오브젝트의 배열을 포맷 해, 제공된
StringBuffer
에, 포맷 요소를 포맷 된 오브젝트에 의해 옮겨놓아 MessageFormat
의 패턴을 추가합니다.
개개의 포맷 요소에 치환된 텍스트는 다음의 겉(표)의 최초로 일치하는 행으로 나타나도록(듯이), 포맷 요소의 현재의 서브 포맷과 포맷 요소의 인수 인덱스에 있는 arguments
요소로부터 얻을 수 있습니다. 인수는 arguments
가 null
인지 또는 요소의 수가 argumentIndex+1 개보다 적은 경우,사용 불가입니다.
서브 포맷
인수
포맷 된 텍스트
임의
사용 불가
"{" + argumentIndex + "}"
임의
null
"null"
instanceof ChoiceFormat
임의
subformat.format(argument). indexOf('{') >= 0 ?
(new MessageFormat(subformat.format(argument), getLocale())). format(argument) : subformat.format(argument)
! = null
임의
subformat.format(argument)
null
instanceof Number
NumberFormat.getInstance(getLocale()). format(argument)
null
instanceof Date
DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, getLocale()). format(argument)
null
instanceof String
argument
null
임의
argument.toString()
pos
가 null 가 아니고, 한편 Field.ARGUMENT
를 참조하고 있는 경우, 최초의 포맷 된 캐릭터 라인의 위치가 돌려주어집니다.
- 파라미터:
arguments
- 포맷 하든가 또는 옮겨놓는 대상의 오브젝트로부터 되는 배열result
- 텍스트가 추가되는 위치pos
- 입력의 경우는 위치 맞춤 필드 (필요한 경우). 출력의 경우는 위치 맞춤 필드의 오프셋(offset)
- 예외:
IllegalArgumentException
- arguments
배열내의 인수가, 그것을 사용하는 포맷 요소에 의해 예측된 타입이 아닌 경우
format
public static String format(String pattern,
Object [] arguments)
- 지정된 패턴을 사용해 MessageFormat 를 작성해, 그것을 사용해 지정된 인수를 포맷 합니다. 이것은 이하의 기술과 동등합니다.
(new MessageFormat
(pattern)). format
(arguments, new StringBuffer(), null). toString()
- 예외:
IllegalArgumentException
- 패턴이 무효의 경우, 또는 arguments
배열내의 인수가, 그것을 사용하는 포맷 요소에 의해 예측된 타입이 아닌 경우
format
public final StringBuffer format(Object arguments,
StringBuffer result,
FieldPosition pos)
- 오브젝트의 배열을 포맷 해, 제공된
StringBuffer
에, 포맷 요소를 포맷 된 오브젝트로 옮겨놓아,MessageFormat
의 패턴을 추가합니다. 이것은 이하의 기술과 동등합니다.
format
((Object[]) arguments, result, pos)
- 정의:
- 클래스
Format
내의 format
- 파라미터:
arguments
- 포맷 하든가 또는 옮겨놓는 오브젝트로부터 되는 배열result
- 텍스트가 추가되는 위치pos
- 입력의 경우는 위치 맞춤 필드 (필요한 경우). 출력의 경우는 위치 맞춤 필드의 오프셋(offset)
- 반환값:
toAppendTo
로서 건네받는 캐릭터 라인 버퍼. 포맷 된 텍스트가 추가된다
- 예외:
IllegalArgumentException
- arguments
배열내의 인수가, 그것을 사용하는 포맷 요소에 의해 예측된 타입이 아닌 경우
formatToCharacterIterator
public AttributedCharacterIterator formatToCharacterIterator(Object arguments)
- 오브젝트의 배열을 포맷 해, 그것을
MessageFormat
의 패턴에 삽입해,AttributedCharacterIterator
를 생성합니다. 돌려주어진 AttributedCharacterIterator
를 사용하면(자), 결과의 String 를 구축할 수 있음과 동시에, 결과의 String 에 대한 정보를 판정할 수 있습니다.
돌려주어진 AttributedCharacterIterator
의 텍스트는 이하의 기술에 의해 돌려주어지는 텍스트와 동일합니다.
format
(arguments, new StringBuffer(), null). toString()
게다가AttributedCharacterIterator
는 적어도 arguments
배열내의 인수로부터 텍스트가 생성된 위치를 나타내는 속성을 포함합니다. 이러한 속성의 키는 MessageFormat.Field
형입니다. 속성의 값은 텍스트가 생성된 인수의 arguments
배열내의 인덱스를 나타내는 Integer
오브젝트입니다.
MessageFormat
가 사용하는 기본의 Format
인스턴스로부터의 속성/치도, 결과의 AttributedCharacterIterator
에 배치됩니다. 이것에 의해, 결과의 String 내의 인수의 위치를 알 수 있을 뿐만 아니라, 그 인수가 어느 필드에 포함되어 있을지도 압니다.
- 오버라이드(override):
- 클래스
Format
내의 formatToCharacterIterator
- 파라미터:
arguments
- 포맷 하든가 또는 옮겨놓는 오브젝트로부터 되는 배열
- 반환값:
- 포맷 된 값을 기술하는 AttributedCharacterIterator
- 예외:
NullPointerException
- arguments
가 null
의 경우
IllegalArgumentException
- arguments
배열내의 인수가, 그것을 사용하는 포맷 요소에 의해 예측된 타입이 아닌 경우- 도입된 버젼:
- 1.4
parse
public Object [] parse(String source,
ParsePosition pos)
- 캐릭터 라인을 해석합니다.
주의: 해석은 다양한 원인을 위해서(때문에), 잘 동작하지 않는 것이 있습니다. 예를 들어, 다음과 같은 경우입니다.
- 인수의 1 개가 패턴에 없다
- 큰 숫자가 "many" 에 포맷 되는 것 같은 choice 포맷등으로, 인수의 포맷이 정보를 잃는다
- 반복을 아직 처리하지 않는다 (옮겨놓는 캐릭터 라인에 {n} 개의 참조가 있는 경우)
- 해석의 일부가 애매한 때, 일치 (또는 올바른 일치)가 반드시 발견되지 않는다. 예를 들어, 패턴 "{1},{2}" 를 캐릭터 라인 인수 {"a, b", "c"} 로 사용하는 경우는 "a, b, c" 와 포맷 된다. 그 결과가 해석되면(자),{"a", "b, c"} 가 돌려주어진다
- 1 개의 인수가 캐릭터 라인내에서 여러 차례 해석되면(자), 나머지의 해석이 우위가 된다
해석이 실패했을 때는 ParsePosition.getErrorIndex()를 사용해, 캐릭터 라인의 어디서 해석이 실패했는지를 조사합니다. 돌려주어지는 에러 인덱스는 캐릭터 라인의 비교 대상인 서브 패턴의 개시 오프셋(offset)입니다. 예를 들어, 해석 캐릭터 라인 "AAA {0} BBB" 가 패턴 "AAD {0} BBB" 라고 비교되고 있는 경우, 에러 인덱스는 0 입니다. 에러가 발생하면(자), 이 메소드에의 호출이 null 를 돌려줍니다. 소스가 null 의 경우, 하늘의 배열을 돌려줍니다.
parse
public Object [] parse(String source)
throws ParseException
- 지정된 캐릭터 라인의 선두로부터 텍스트를 해석해 오브젝트 배열을 생성합니다. 메소드는 지정된 캐릭터 라인의 텍스트 전체를 사용하지 않는 경우도 있습니다.
메세지의 해석에 대한 자세한 것은 parse(String, ParsePosition)
를 참조해 주세요.
- 파라미터:
source
- 선두가 해석되는 String
- 반환값:
- 캐릭터 라인으로부터 해석되는
Object
배열
- 예외:
ParseException
- 지정된 캐릭터 라인의 선두를 해석할 수 없는 경우
parseObject
public Object parseObject(String source,
ParsePosition pos)
- 캐릭터 라인으로부터 텍스트를 해석해 오브젝트 배열을 생성합니다.
메소드는 pos
에 의해 지정된 인덱스를 개시 위치로서 텍스트의 해석을 시도합니다. 해석이 완료하면(자),pos
의 인덱스는 사용된 마지막 캐릭터 (해석에서는 캐릭터 라인의 끝까지의 모든 캐릭터가 사용된다고는 할 수 없다)의 뒤의 인덱스에 갱신되어 해석된 오브젝트 배열이 돌려주어집니다. 갱신된 pos
는 이 메소드의 다음의 호출의 개시점을 나타내기 위해서(때문에) 사용할 수 있습니다. 에러가 발생했을 경우는 pos
의 인덱스는 변경되지 않고 에러가 발생한 캐릭터의 인덱스에 pos
의 에러 인덱스가 설정되어 null 가 돌려주어집니다.
메세지의 해석에 대한 자세한 것은 parse(String, ParsePosition)
를 참조해 주세요.
- 정의:
- 클래스
Format
내의 parseObject
- 파라미터:
source
- 부분적으로 해석되는 String
pos
- 상기의 인덱스 및 에러 인덱스 정보를 가지는 ParsePosition
오브젝트
- 반환값:
- 캐릭터 라인으로부터 해석된
Object
배열. 에러의 경우는 null 를 돌려준다
- 예외:
NullPointerException
- pos
가 null 의 경우
clone
public Object clone()
- 이 오브젝트의 카피를 작성해, 돌려줍니다.
- 오버라이드(override):
- 클래스
Format
내의 clone
- 반환값:
- 이 인스턴스의 복제
equals
public boolean equals(Object obj)
- 2 개의 메세지 포맷 오브젝트의 사이의 등호 비교입니다.
- 오버라이드(override):
- 클래스
Object
내의 equals
- 파라미터:
obj
- 비교 대상의 참조 오브젝트
- 반환값:
- obj 인수로 지정된 오브젝트와 이 오브젝트가 동일한 경우는
true
, 그렇지 않은 경우는 false
- 관련 항목:
Object.hashCode()
,
Hashtable
hashCode
public int hashCode()
- 메세지 포맷 오브젝트의 해시 코드를 생성합니다.
- 오버라이드(override):
- 클래스
Object
내의 hashCode
- 반환값:
- 이 오브젝트의 해시 코드치
- 관련 항목:
Object.equals(java.lang.Object)
,
Hashtable
개요
패키지
클래스
사용
계층 트리
비추천 API
색인
헬프
JavaTM 2
Platform
Std. Ed. v1. 4.0
전의 클래스
다음의 클래스
프레임 있어
프레임 없음
모든 클래스
개요: 상자 | 필드 | constructor | 메소드
상세: 필드 | constructor | 메소드
버그의 보고와 기능의 리퀘스트
이외의 API 레퍼런스 및 개발자용 문서에 대해서는 Java 2 SDK SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다. Java, Java 2 D, 및 JDBC 는 미국 및 그 외의 나라에 있어서의 미국 Sun Microsystems, Inc. 의 상표 혹은 등록상표입니다.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.