|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.text.Format | +--java.text.NumberFormat
NumberFormat
は、すべての数値フォーマットに対する abstract 基底クラスです。このクラスは、数値のフォーマットと解析のためのインタフェースです。さらに NumberFormat
は、数値フォーマットがどのロケールにあり、その名前が何であるかを知るためのメソッドを提供します。
NumberFormat
を使うと、任意のロケールの数値を簡単にフォーマットしたり解析したりできるようになります。ユーザのコードは、10 進数の小数点、1000 の区切り、使用する特定の 10 進数字に対するロケールのルールだけでなく、数字フォーマットが 10 進数かどうかということからさえも、完全に独立しています。
現行ロケールの数値をフォーマットする場合は、ファクトリクラスメソッドの 1 つを使用します。
複数の数値をフォーマットする場合には、そのフォーマットを取得して、それを複数回使う方が効率的です。そうすれば、ローカルの言語と国のルールをシステムが複数回取得する必要がありません。myString = NumberFormat.getInstance().format(myNumber);
異なるロケールの数値をフォーマットする場合は、NumberFormat nf = NumberFormat.getInstance(); for (int i = 0; i < a.length; ++i) { output.println(nf.format(myNumber[i]) + "; "); }
getInstance
を呼び出すときにそれを指定します。
さらに、NumberFormat nf = NumberFormat.getInstance(Locale.FRENCH);
NumberFormat
を使って数値を解析することができます。
通常の数値フォーマットを得るには、myNumber = nf.parse(myString);
getInstance
か getNumberInstance
を使用します。通貨数値フォーマットを得るには、getCurrencyInstance
を使用します。そして、パーセントを表示するフォーマットを得るには、getPercentInstance
を使用します。このフォーマットを使うと、0.53 などの小数点以下は 53% のように表示されます。
さらに、setMinimumFractionDigits
などのメソッドを使えば、数値の表示を制御することができます。フォーマットや解析をさらに制御したい場合、あるいはこのような制御をユーザが使えるようにしたい場合は、ファクトリメソッドから得られる NumberFormat
を DecimalNumberFormat
にキャストすることもできます。これはほとんどのロケールで有効ですが、有効にならないロケールの場合に備えて、これは 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 int |
FRACTION_FIELD
FieldPosition オブジェクトを構築するためのフィールド定数です。 |
static int |
INTEGER_FIELD
FieldPosition オブジェクトを構築するためのフィールド定数です。 |
コンストラクタの概要 | |
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()
NumberFormat が導入されているロケールセットを取得します。 |
static NumberFormat |
getCurrencyInstance()
現在のデフォルトロケールに対する通貨フォーマットを返します。 |
static NumberFormat |
getCurrencyInstance(Locale inLocale)
指定されたロケールに対する通貨フォーマットを返します。 |
static NumberFormat |
getInstance()
現在のデフォルトロケールに対するデフォルトの数値フォーマットを返します。 |
static NumberFormat |
getInstance(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)
指定されたロケールに対するパーセントフォーマットを返します。 |
int |
hashCode()
hashCode をオーバーライドします。 |
boolean |
isGroupingUsed()
このフォーマットでグループ化が使用される場合に、true を返します。 |
boolean |
isParseIntegerOnly()
このフォーマットが数値を整数としてのみ解析する場合に、true を返します。 |
Number |
parse(String text)
簡易メソッドです。 |
abstract Number |
parse(String text,
ParsePosition parsePosition)
可能な場合 (たとえば、[Long.MIN_VALUE, Long.MAX_VALUE] の範囲で、小数部分がない場合) は Long を、そうでない場合は Double を返します。 |
Object |
parseObject(String source,
ParsePosition parsePosition)
|
void |
setGroupingUsed(boolean newValue)
このフォーマットでグループ化を使用するかどうかを設定します。 |
void |
setMaximumFractionDigits(int newValue)
数値の小数部分として可能な最大桁数を設定します。 |
void |
setMaximumIntegerDigits(int newValue)
数値の整数部分として可能な最大桁数を設定します。 |
void |
setMinimumFractionDigits(int newValue)
数値の小数部分として可能な最小桁数を設定します。 |
void |
setMinimumIntegerDigits(int newValue)
数値の整数部分として可能な最小桁数を返します。 |
void |
setParseIntegerOnly(boolean value)
数値を整数としてのみ解析するかどうかを設定します。 |
クラス java.text.Format から継承したメソッド |
format,
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
コンストラクタの詳細 |
public NumberFormat()
メソッドの詳細 |
public final StringBuffer format(Object number, StringBuffer toAppendTo, FieldPosition pos)
public final Object parseObject(String source, ParsePosition parsePosition)
public final String format(double number)
Format.format(java.lang.Object)
public final String format(long number)
Format.format(java.lang.Object)
public abstract StringBuffer format(double number, StringBuffer toAppendTo, FieldPosition pos)
Format.format(java.lang.Object)
public abstract StringBuffer format(long number, StringBuffer toAppendTo, FieldPosition pos)
Format.format(java.lang.Object)
public abstract Number parse(String text, ParsePosition parsePosition)
isParseIntegerOnly()
,
Format.parseObject(java.lang.String, java.text.ParsePosition)
public Number parse(String text) throws ParseException
format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition)
public boolean isParseIntegerOnly()
public void setParseIntegerOnly(boolean value)
isParseIntegerOnly()
public static final NumberFormat getInstance()
public static NumberFormat getInstance(Locale inLocale)
public static final NumberFormat getNumberInstance()
public static NumberFormat getNumberInstance(Locale inLocale)
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()
public int hashCode()
public boolean equals(Object obj)
public Object clone()
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()
|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |