|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
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)
Format
内の format
obj
- フォーマットするオブジェクトtoAppendTo
- テキストを追加する位置pos
- 入力の場合は位置合わせフィールド (必要な場合)。出力の場合は位置合わせフィールドのオフセットIllegalArgumentException
- 指定されたオブジェクトを Format でフォーマットできない場合FieldPosition
public final Object parseObject(String source, ParsePosition parsePosition)
Format
内の parseObject
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
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()
Object
内の hashCode
java.lang.Object
からコピーされたタグ:Object.equals(java.lang.Object)
,
Hashtable
public boolean equals(Object obj)
Object
内の equals
java.lang.Object
からコピーされたタグ:obj
- 比較対象の参照オブジェクトtrue
、そうでない場合は false
Boolean.hashCode()
,
Hashtable
public Object clone()
Format
内の clone
java.lang.Object
からコピーされたタグ:CloneNotSupportedException
- オブジェクトのクラスが Cloneable
インタフェースをサポートしていない場合。clone
メソッドをオーバーライドしたサブクラスも、インスタンスを複製できないことを示すためにこの例外をスローすることがあるOutOfMemoryError
- 十分なメモリがない場合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()
|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.