|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.text.Format java.text.NumberFormat
public abstract class NumberFormat
NumberFormat
は、すべての数値フォーマットに対する abstract 基底クラスです。このクラスは、数値のフォーマットと解析のためのインタフェースです。さらに 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
が、整数の最後の文字と小数点の間のオフセットに設定されます。文字列の前に (desiredSpaceCount - getEndIndex) のスペースを追加してください。
getEndIndex
までピクセル単位で測ります。次に、テキストを描く前に、(desiredPixelWidth - widthToAlignmentPoint) だけペンを移動します。これは、小数点を扱うことはできませんが、終わりに追加の文字がある場合にも有効です。たとえば、-12 を "(12)" にするように、負の数に括弧を付ける場合です。
数値フォーマットは同期化されません。スレッドごとに別のフォーマットインスタンスを作成することをお勧めします。複数のスレッドがフォーマットに並行してアクセスする場合は、外部的に同期化する必要があります。
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 をオーバーライドします。 |
boolean |
equals(Object obj)
equals をオーバーライドします。 |
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 をオーバーライドします。 |
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()
を使用します。 ビット長
が 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
- 入力では、必要であれば位置合わせフィールド。出力では、その位置合わせフィールドのオフセット
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
をスローします。
null
UnsupportedOperationException
- 数値フォーマットのクラスが通貨フォーマットを実装しない場合public void setCurrency(Currency currency)
デフォルト実装は UnsupportedOperationException
をスローします。
currency
- この数値フォーマットで使用する新しい通貨
UnsupportedOperationException
- 数値フォーマットのクラスが通貨フォーマットを実装しない場合
NullPointerException
- currency
が null の場合public RoundingMode getRoundingMode()
RoundingMode
を取得します。NumberFormat のこのメソッドのデフォルト実装は、常に UnsupportedOperationException
をスローします。さまざまな丸めモードを処理するサブクラスは、このメソッドをオーバーライドする必要があります。
RoundingMode
UnsupportedOperationException
- デフォルトの実装は常にこの例外をスローするsetRoundingMode(RoundingMode)
public void setRoundingMode(RoundingMode roundingMode)
RoundingMode
を設定します。NumberFormat のこのメソッドのデフォルト実装は、常に UnsupportedOperationException
をスローします。さまざまな丸めモードを処理するサブクラスは、このメソッドをオーバーライドする必要があります。
roundingMode
- 使用される RoundingMode
UnsupportedOperationException
- デフォルトの実装は常にこの例外をスローする
NullPointerException
- roundingMode
が null の場合getRoundingMode()
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。