|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요 : 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
java.lang.Objectjava.text.Format
java.text.NumberFormat
public abstract class NumberFormat
NumberFormat
는, 모든 수치 포맷에 대한 abstract base class입니다. 이 클래스는, 수치의 포맷과 해석을 위한 인터페이스입니다. 한층 더 NumberFormat
는, 수치 포맷이 어느 로케일에 있어, 그 이름이 무엇으로 있을까를 알기 위한 메소드를 제공합니다.
NumberFormat
를 사용하면(자), 임의의 로케일의 수치를 간단하게 포맷 하거나 해석하거나 할 수 있게 됩니다. 사용자의 코드는, 10 진수의 소수점, 1000 의 단락지어, 사용하는 특정의 10 진수자에 대한 로케일의 룰 뿐만이 아니라, 숫자 포맷이 10 진수인가 어떤가라고 하는 것 매움 도, 완전하게 독립하고 있습니다.
현행 로케일의 수치를 포맷 하는 경우는, 팩토리 클래스 메소드의 1 개를 사용합니다.
복수의 수치를 포맷 하는 경우에는, 그 포맷을 취득해, 그것을 여러 차례 사용하는 (분)편이 효율적입니다. 그러면, 로컬의 언어와 나라의 룰을 시스템이 여러 차례 취득할 필요가 없습니다.myString = NumberFormat.getInstance(). format(myNumber);
다른 로케일의 수치를 포맷 하는 경우는,NumberFormat nf = NumberFormat.getInstance(); for (int i = 0; i < myNumber.length; ++i) { output.println(nf.format(myNumber[i]) + "; "); }
getInstance
를 호출할 때 그것을 지정합니다.
게다가NumberFormat nf = NumberFormat.getInstance(Locale.FRENCH);
NumberFormat
를 사용해 수치를 해석할 수가 있습니다.
일반적으로의 수치 포맷을 얻으려면 ,myNumber = nf.parse(myString);
getInstance
나 getNumberInstance
를 사용합니다. 정수형 수치 포맷을 얻으려면 ,getIntegerInstance
를 사용합니다. 통화 수치 포맷을 얻으려면 ,getCurrencyInstance
를 사용합니다. 그리고, 퍼센트를 표시하는 포맷을 얻으려면 ,getPercentInstance
를 사용합니다. 이 포맷을 사용하면(자), 0.53 등의 소수점 이하는 53% 과 같이 표시됩니다.
게다가setMinimumFractionDigits
등의 메소드를 사용하면, 수치의 표시를 제어할 수가 있습니다. 포맷이나 해석을 한층 더 제어하고 싶은 경우, 혹은 이러한 제어를 사용자가 사용할 수 있도록(듯이) 하고 싶은 경우는, 팩토리 메소드로부터 얻을 수 있는 NumberFormat
를 DecimalFormat
에 캐스트 할 수도 있습니다. 이것은 대부분의 로케일로 유효합니다만, 유효하게 안 되는 로케일의 경우에 대비해, 이것은 try
블록으로 지정해 주세요.
NumberFormat 와 DecimalFormat 는, 포맷을 제어하는 것과 해석을 제어하는 것이 있도록(듯이) 설계되고 있습니다. 다음에, 이러한 제어 메소드에 대해 상세하게 설명합니다.
setParseIntegerOnly 는 해석에만 작용합니다. 예를 들어, true 의 경우는,"3456.78" -> 3456 (해석 위치를 인덱스 6 의 직후에 그대로 남겨 둔다)이 됩니다. false 의 경우는,"3456.78" -> 3456.78 (해석 위치를 인덱스 8 의 직후에 그대로 남겨 둔다)이 됩니다. 이것은 포맷에 의존하지 않습니다. 소수점 이하의 자리수가 없는 경우에 소수점을 표시하지 않을 때는, setDecimalSeparatorAlwaysShown 를 사용합니다.
setDecimalSeparatorAlwaysShown 는 포맷에만 작용합니다. 다만,"#,##0. ##" (와)과 같은 패턴으로, 소수점 이하의 자리수가 없는 경우에 한정합니다. 예를 들어, true 의 경우, 3456.00 -> "3,456. " 됩니다. false 의 경우, 3456.00 -> "3456" 이 됩니다. 이것은 해석에 의존하지 않습니다. 소수점으로써 해석을 정지하는 경우는, setParseIntegerOnly 를 사용합니다.
게다가parse
와 format
메소드의 형식을 ParsePosition
와 FieldPosition
와 함께 사용하면, 다음 일이 가능합니다.
FieldPosition
를 건네줄 수가 있습니다. 이 때,field
= INTEGER_FIELD
로 합니다. 출력으로는,getEndIndex
가, 정수의 마지막 문자와 소수점의 사이의 오프셋(offset)로 설정됩니다. 캐릭터 라인의 전에 (desiredSpaceCount - getEndIndex)의 스페이스를 추가해 주세요.
getEndIndex
까지 픽셀 단위로 측정합니다. 다음에, 텍스트를 그리기 전에, (desiredPixelWidth - widthToAlignmentPoint)만 펜을 이동합니다. 이것은, 소수점을 취급할 수 없습니다만, 마지막에 추가의 문자가 있는 경우에도 유효합니다. 예를 들어,-12 를 "(12)" 로 하도록(듯이), 부의 수에 괄호를 붙이는 경우입니다.
수치 포맷은 동기화 되지 않습니다. thread 마다 다른 포맷 인스턴스를 작성하는 것을 추천합니다. 복수의 thread가 포맷에 동시에 액세스 하는 경우는, 외부적으로 동기화할 필요가 있습니다.
DecimalFormat
,
ChoiceFormat
,
직렬화 된 형식 상자의 클래스의 개요 | |
---|---|
static class |
NumberFormat.Field
NumberFormat.formatToCharacterIterator 로부터 반환된 AttributedCharacterIterator 내의 속성 키, 및 FieldPosition 내의 필드 식별자로서 사용하는 정수를 정의합니다. |
필드의 개요 | |
---|---|
static int |
FRACTION_FIELD
FieldPosition 객체를 구축하기 위한 필드 정수입니다. |
static int |
INTEGER_FIELD
FieldPosition 객체를 구축하기 위한 필드 정수입니다. |
생성자 의 개요 | |
---|---|
protected |
NumberFormat ()
유일한 생성자 입니다. |
메소드의 개요 | |
---|---|
Object |
clone ()
Cloneable 를 오버라이드(override) 합니다. |
boolean |
equals (Object obj)
equals 를 오버라이드(override) 합니다. |
String |
format (double number)
포맷의 특수화입니다. |
abstract StringBuffer |
format (double number,
StringBuffer toAppendTo,
FieldPosition pos)
포맷의 특수화입니다. |
String |
format (long number)
포맷의 특수화입니다. |
abstract StringBuffer |
format (long number,
StringBuffer toAppendTo,
FieldPosition pos)
포맷의 특수화입니다. |
StringBuffer |
format (Object number,
StringBuffer toAppendTo,
FieldPosition pos)
수치를 포맷 해, 그 결과의 텍스트가 지정된 캐릭터 라인 버퍼에 추가합니다. |
static Locale [] |
getAvailableLocales ()
이 클래스의 get*Instance 메소드가 지역 대응의 인스턴스를 돌려줄 수 있는 로케일 모든 배열을 돌려줍니다. |
Currency |
getCurrency ()
통화치의 포맷시에, 이 수치 포맷이 사용하는 통화를 가져옵니다. |
static NumberFormat |
getCurrencyInstance ()
현재의 디폴트 로케일에 대한 통화 포맷을 돌려줍니다. |
static NumberFormat |
getCurrencyInstance (Locale inLocale)
지정된 로케일에 대한 통화 포맷을 돌려줍니다. |
static NumberFormat |
getInstance ()
현재의 디폴트 로케일에 대한 범용 수치 포맷을 돌려줍니다. |
static NumberFormat |
getInstance (Locale inLocale)
지정된 로케일에 대한 범용 수치 포맷을 돌려줍니다. |
static NumberFormat |
getIntegerInstance ()
현재의 디폴트 로케일에 대한 정수형 수치 포맷을 돌려줍니다. |
static NumberFormat |
getIntegerInstance (Locale inLocale)
지정된 로케일에 대한 정수형 수치 포맷을 돌려줍니다. |
int |
getMaximumFractionDigits ()
수치의 소수 부분으로서 가능한 최대 자리수를 돌려줍니다. |
int |
getMaximumIntegerDigits ()
수치의 정수 부분으로서 가능한 최대 자리수를 돌려줍니다. |
int |
getMinimumFractionDigits ()
수치의 소수 부분으로서 가능한 최소 자리수를 돌려줍니다. |
int |
getMinimumIntegerDigits ()
수치의 정수 부분으로서 가능한 최소 자리수를 돌려줍니다. |
static NumberFormat |
getNumberInstance ()
현재의 디폴트 로케일에 대한 범용 수치 포맷을 돌려줍니다. |
static NumberFormat |
getNumberInstance (Locale inLocale)
지정된 로케일에 대한 범용 수치 포맷을 돌려줍니다. |
static NumberFormat |
getPercentInstance ()
현재의 디폴트 로케일에 대한 퍼센트 포맷을 돌려줍니다. |
static NumberFormat |
getPercentInstance (Locale inLocale)
지정된 로케일에 대한 퍼센트 포맷을 돌려줍니다. |
RoundingMode |
getRoundingMode ()
이 NumberFormat 으로 사용되는 RoundingMode 를 가져옵니다. |
int |
hashCode ()
hashCode 를 오버라이드(override) 합니다. |
boolean |
isGroupingUsed ()
이 포맷으로 그룹화가 사용되는 경우에, true 를 돌려줍니다. |
boolean |
isParseIntegerOnly ()
이 포맷이 수치를 정수로서의 보고 해석하는 경우에, true 를 돌려줍니다. |
Number |
parse (String source)
지정된 캐릭터 라인의 선두로부터 텍스트를 해석해 수치를 생성합니다. |
abstract Number |
parse (String source,
ParsePosition parsePosition)
가능한 경우 (예를 들어,[Long.MIN_VALUE, Long.MAX_VALUE] 의 범위에서, 소수 부분이 없는 경우)는 Long 를, 그렇지 않은 경우는 Double 를 돌려줍니다. |
Object |
parseObject (String source,
ParsePosition pos)
캐릭터 라인으로부터 텍스트를 해석해 Number 를 생성합니다. |
void |
setCurrency (Currency currency)
통화치의 포맷시에, 이 수치 포맷이 사용하는 통화를 설정합니다. |
void |
setGroupingUsed (boolean newValue)
이 포맷으로 그룹화를 사용할지 어떨지를 설정합니다. |
void |
setMaximumFractionDigits (int newValue)
수치의 소수 부분으로서 가능한 최대 자리수를 설정합니다. |
void |
setMaximumIntegerDigits (int newValue)
수치의 정수 부분으로서 가능한 최대 자리수를 설정합니다. |
void |
setMinimumFractionDigits (int newValue)
수치의 소수 부분으로서 가능한 최소 자리수를 설정합니다. |
void |
setMinimumIntegerDigits (int newValue)
수치의 정수 부분으로서 가능한 최소 자리수를 돌려줍니다. |
void |
setParseIntegerOnly (boolean value)
수치를 정수로서의 보고 해석할지 어떨지를 설정합니다. |
void |
setRoundingMode (RoundingMode roundingMode)
이 NumberFormat 으로 사용되는 RoundingMode 를 설정합니다. |
클래스 java.text. Format 로부터 상속된 메소드 |
---|
format , formatToCharacterIterator , parseObject |
클래스 java.lang. Object 로부터 상속된 메소드 |
---|
finalize , getClass , notify , notifyAll , toString , wait , wait , wait |
필드의 상세 |
---|
public static final int INTEGER_FIELD
FieldPosition
,
정수 필드치 public static final int FRACTION_FIELD
FieldPosition
,
정수 필드치 생성자 의 상세 |
---|
protected NumberFormat()
메소드의 상세 |
---|
public StringBuffer format(Object number, StringBuffer toAppendTo, FieldPosition pos)
Number
의 임의의 서브 클래스입니다.
이 구현은, number 로부터 값을 추출할 때에, 정보의 손실없이 long
에 변환 가능한 정수형의 값에 대해서는,Number.longValue()
를 사용합니다. bit length
가 64 미만의 BigInteger
치도 이것에 해당합니다. 그 외의 형태에 대해서는,Number.doubleValue()
를 사용합니다. 계속되어,format(long, java.lang.StringBuffer, java.text.FieldPosition)
또는 format(double, java.lang.StringBuffer, java.text.FieldPosition)
를 호출합니다. 다만 BigInteger
치와 BigDecimal
치의 경우는, 이것에 의해, 그 절대치 정보나 정밀도가 없어질 가능성이 있습니다.
Format
내의 format
number
- 포맷 하는 수치toAppendTo
- 포맷 후의 텍스트를 추가한다
StringBuffer
pos
- 입력으로는, 필요하면 위치 맞춤 필드.
출력으로는, 그 위치 맞춤 필드의 오프셋(offset)
toAppendTo
로서 건네받은 값
IllegalArgumentException
- number
가 null 인지,
Number
의 인스턴스가 아닌 경우
NullPointerException
- toAppendTo
또는
pos
가 null 의 경우
ArithmeticException
- 둥근 처리가 필요한 경우에
둥근 모드가 RoundingMode.UNNECESSARY 로 설정되어 있을 때FieldPosition
public final Object parseObject(String source, ParsePosition pos)
Number
를 생성합니다.
메소드는 pos
에 의해 지정된 인덱스를 개시 위치로서 텍스트의 해석을 시도합니다. 해석이 완료하면(자),pos
의 인덱스는, 사용된 마지막 문자 (해석에서는, 캐릭터 라인의 끝까지의 모든 문자를 사용할 필요는 없다)의 뒤의 인덱스에 갱신되어 해석된 수치가 돌려주어집니다. 갱신된 pos
는, 이 메소드의 다음의 호출의 개시점을 나타내는데 사용할 수 있습니다. 에러가 발생했을 경우는,pos
의 인덱스는 변경되지 않고, 에러가 발생한 문자의 인덱스에 pos
의 에러 인덱스가 설정되어 null 가 돌려주어집니다.
수치의 해석에 대한 자세한 것은,parse(String, ParsePosition)
를 참조해 주세요.
Format
내의 parseObject
source
- 부분적으로 해석되는 String
pos
- 상기의 인덱스 및 에러 인덱스 정보를 가진다
ParsePosition
객체
Number
에러의 경우는
null 를 돌려준다
NullPointerException
- pos
가 null 의 경우public final String format(double number)
ArithmeticException
- 둥근 처리가 필요한 경우에
둥근 모드가 RoundingMode.UNNECESSARY 로 설정되어 있을 때Format.format(java.lang.Object)
public final String format(long number)
ArithmeticException
- 둥근 처리가 필요한 경우에
둥근 모드가 RoundingMode.UNNECESSARY 로 설정되어 있을 때Format.format(java.lang.Object)
public abstract StringBuffer format(double number, StringBuffer toAppendTo, FieldPosition pos)
ArithmeticException
- 둥근 처리가 필요한 경우에
둥근 모드가 RoundingMode.UNNECESSARY 로 설정되어 있을 때Format.format(java.lang.Object)
public abstract StringBuffer format(long number, StringBuffer toAppendTo, FieldPosition pos)
ArithmeticException
- 둥근 처리가 필요한 경우에
둥근 모드가 RoundingMode.UNNECESSARY 로 설정되어 있을 때Format.format(java.lang.Object)
public abstract Number parse(String source, ParsePosition parsePosition)
isParseIntegerOnly()
,
Format.parseObject(java.lang.String, java.text.ParsePosition)
public Number parse(String source) throws ParseException
수치의 해석에 대한 자세한 것은,parse(String, ParsePosition)
를 참조해 주세요.
source
- 선두가 해석되는 String
Number
ParseException
- 지정된 캐릭터 라인의 선두가
해석할 수 없는 경우public boolean isParseIntegerOnly()
public void setParseIntegerOnly(boolean value)
isParseIntegerOnly()
public static final NumberFormat getInstance()
getNumberInstance()
를 호출하는 것과 같습니다.
public static NumberFormat getInstance(Locale inLocale)
getNumberInstance(inLocale)
를 호출하는 것과 같습니다.
public static final NumberFormat getNumberInstance()
public static NumberFormat getNumberInstance(Locale inLocale)
public static final NumberFormat getIntegerInstance()
RoundingMode.HALF_EVEN
를 참조)를 사용해, 부동 소수점수(실수)치를 가장 가까운 정수치에 둥근, 입력 캐릭터 라인의 정수 부분만큼을 해석하는 것 (isParseIntegerOnly
를 참조) 같게 설정됩니다.
getRoundingMode()
public static NumberFormat getIntegerInstance(Locale inLocale)
RoundingMode.HALF_EVEN
를 참조)를 사용해, 부동 소수점수(실수)치를 가장 가까운 정수치에 둥근, 입력 캐릭터 라인의 정수 부분만큼을 해석하는 것 (isParseIntegerOnly
를 참조) 같게 설정됩니다.
getRoundingMode()
public static final NumberFormat getCurrencyInstance()
public static NumberFormat getCurrencyInstance(Locale inLocale)
public static final NumberFormat getPercentInstance()
public static NumberFormat getPercentInstance(Locale inLocale)
public static Locale [] getAvailableLocales()
get*Instance
메소드가 지역 대응의 인스턴스를 돌려줄 수 있는 로케일 모든 배열을 돌려줍니다. 반환되는 배열은, Java 런타임 및 인스톨 되고 있는 NumberFormatProvider
구현에 의해 지원되고 있는 로케일의 화집합을 나타냅니다. 이것에는,Locale.US
와 등가인 Locale
인스턴스가 적어도 1 개(살) 포함되어 있을 필요가 있습니다.
NumberFormat
인스턴스를
사용 가능한 로케일의 배열public int hashCode()
Object
내의 hashCode
Object.equals(java.lang.Object)
,
Hashtable
public boolean equals(Object obj)
Object
내의 equals
obj
- 비교 대상의 참조 객체
true
, 그렇지 않은 경우는 false
Object.hashCode()
,
Hashtable
public Object clone()
Format
내의 clone
Cloneable
public boolean isGroupingUsed()
setGroupingUsed(boolean)
public void setGroupingUsed(boolean newValue)
isGroupingUsed()
public int getMaximumIntegerDigits()
setMaximumIntegerDigits(int)
public void setMaximumIntegerDigits(int newValue)
newValue
- 정수의 최대 표시 자리수.
0 보다 작은 경우는 0 이 사용된다. 구상 서브 클래스에서는,
이 값의 상한을, 포맷 되는 수치의 종류에 적절한 값에 강제할 수 있는getMaximumIntegerDigits()
public int getMinimumIntegerDigits()
setMinimumIntegerDigits(int)
public void setMinimumIntegerDigits(int newValue)
newValue
- 정수의 최소 표시 자리수.
0 보다 작은 경우는 0 이 사용된다. 구상 서브 클래스에서는,
이 값의 상한을, 포맷 되는 수치의 종류에 적절한 값에 강제할 수 있는getMinimumIntegerDigits()
public int getMaximumFractionDigits()
setMaximumFractionDigits(int)
public void setMaximumFractionDigits(int newValue)
newValue
- 소수점의 최대 표시 자리수.
0 보다 작은 경우는 0 이 사용된다. 구상 서브 클래스에서는,
이 값의 상한을, 포맷 되는 수치의 종류에 적절한 값에 강제할 수 있는getMaximumFractionDigits()
public int getMinimumFractionDigits()
setMinimumFractionDigits(int)
public void setMinimumFractionDigits(int newValue)
newValue
- 소수점의 최소 표시 자리수.
0 보다 작은 경우는 0 이 사용된다. 구상 서브 클래스에서는,
이 값의 상한을, 포맷 되는 수치의 종류에 적절한 값에 강제할 수 있는getMinimumFractionDigits()
public Currency getCurrency()
setCurrency
를 사용해 설정된 통화가 없는 경우, null 가 돌려주어집니다.
디폴트 구현은 UnsupportedOperationException
를 throw 합니다.
null
UnsupportedOperationException
- 수치 포맷의 클래스가
통화 포맷을 구현하지 않는 경우public void setCurrency(Currency currency)
디폴트 구현은 UnsupportedOperationException
를 throw 합니다.
currency
- 이 수치 포맷으로 사용하는 새로운 통화
UnsupportedOperationException
- 수치 포맷의 클래스가
통화 포맷을 구현하지 않는 경우
NullPointerException
- currency
가 null 의 경우public RoundingMode getRoundingMode()
RoundingMode
를 가져옵니다. NumberFormat 의 이 메소드의 디폴트 구현은, 항상 UnsupportedOperationException
를 throw 합니다. 다양한 둥근 모드를 처리하는 서브 클래스는, 이 메소드를 오버라이드(override) 할 필요가 있습니다.
RoundingMode
UnsupportedOperationException
- 디폴트의 구현은
항상 이 예외를 throw 하는setRoundingMode(RoundingMode)
public void setRoundingMode(RoundingMode roundingMode)
RoundingMode
를 설정합니다. NumberFormat 의 이 메소드의 디폴트 구현은, 항상 UnsupportedOperationException
를 throw 합니다. 다양한 둥근 모드를 처리하는 서브 클래스는, 이 메소드를 오버라이드(override) 할 필요가 있습니다.
roundingMode
- 사용되는 RoundingMode
UnsupportedOperationException
- 디폴트의 구현은
항상 이 예외를 throw 한다
NullPointerException
- roundingMode
가 null 의 경우getRoundingMode()
|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요 : 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.