全パッケージ クラス階層 このパッケージ 前項目 次項目 インデックス
クラス java.text.NumberFormat
java.lang.Object
|
+----java.text.Format
|
+----java.text.NumberFormat
- public abstract class NumberFormat
- extends Format
- implements Cloneable
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
ブロックに指定してください。
さらに、parse
と format
メソッドの形式を ParsePosition
と FieldPosition
ともに使用すれば、次のことが可能です。
- 文字列の構成部分を段階的に解析する。
- 10進小数点などの区域を位置合わせする。
たとえば、複数の数値を2つの方法で位置合わせすることができます。
- モノスペースフォントを使い、位置合わせにスペースを入れる場合には、フォーマット呼び出しで
FieldPosition
を渡すことができます。このとき、field
= INTEGER_FIELD
とします。出力では、getEndIndex
が、整数の最後の文字と小数点の間のオフセットに設定されます。文字列の前に (desiredSpaceCount - getEndIndex)のスペースを追加してください。
- プロポーショナルフォントを使う場合には、スペースを追加する代わりに、文字列の幅をその始めから
getEndIndex
までピクセル単位で測ります。次に、テキストを描く前に、(desiredPixelWidth - widthToAlignmentPoint)だけペンを移動します。これは、小数点を扱うことはできませんが、終わりに追加の文字がある場合にも有効です。たとえば、-12を "(12)"にするように、負の数にかっこをつける場合です。
- 参照:
- DecimalFormat, ChoiceFormat
-
FRACTION_FIELD
- FieldPositionオブジェクトを構築するためのフィールド定数です。
-
INTEGER_FIELD
- FieldPositionオブジェクトを構築するためのフィールド定数です。
-
NumberFormat()
-
-
clone()
- Cloneableをオーバーライドします。
-
equals(Object)
- equalsをオーバーライドします。
-
format(double)
- フォーマットの特殊化です。
-
format(double, StringBuffer, FieldPosition)
- フォーマットの特殊化です。
-
format(long)
- フォーマットの特殊化です。
-
format(long, StringBuffer, FieldPosition)
- フォーマットの特殊化です。
-
format(Object, StringBuffer, FieldPosition)
- オブジェクトをフォーマットして文字列を生成します。
-
getAvailableLocales()
- NumberFormatsが導入されるロケールセットを入手します。
-
getCurrencyInstance()
- 現在のデフォルトロケールに対する通貨フォーマットを返します。
-
getCurrencyInstance(Locale)
- 指定のロケールに対する通貨フォーマットを返します。
-
getInstance()
- 現在のデフォルトロケールに対するデフォルトの数値フォーマットを返します。
-
getInstance(Locale)
- 指定のロケールに対するデフォルトの数値フォーマットを返します。
-
getMaximumFractionDigits()
- 数値の小数部分で使用できる最大桁数を返します。
-
getMaximumIntegerDigits()
- 数値の整数部分で使用できる最大桁数を返します。
-
getMinimumFractionDigits()
- 数値の小数部分で使用できる最小桁数を返します。
-
getMinimumIntegerDigits()
- 数値の整数部分で使用できる最小桁数を返します。
-
getNumberInstance()
- 現在のデフォルトロケールに対する汎用数値フォーマットを返します。
-
getNumberInstance(Locale)
- 指定のロケールに対する汎用数値フォーマットを返します。
-
getPercentInstance()
- 現在のデフォルトロケールに対するパーセントフォーマットを返します。
-
getPercentInstance(Locale)
- 指定のロケールに対するパーセントフォーマットを返します。
-
hashCode()
- hashCodeをオーバーライドします。
-
isGroupingUsed()
- このフォーマットでグループ化が使用される場合、真を返します。
-
isParseIntegerOnly()
- このフォーマットが数値を整数としてのみ解析する場合、真を返します。
-
parse(String)
- コンビニエンスメソッドです。
-
parse(String, ParsePosition)
- 可能なら(たとえば、[Long.MIN_VALUE, Long.MAX_VALUE]の範囲で、小数部分がない場合)、Longを、そうでなければDoubleを返します。
-
parseObject(String, ParsePosition)
- 文字列を解析してオブジェクトを生成します。
-
setGroupingUsed(boolean)
- このフォーマットでグループ化を使用するかどうかを設定します。
-
setMaximumFractionDigits(int)
- 数値の小数部分で使用できる最大桁数を設定します。
-
setMaximumIntegerDigits(int)
- 数値の整数部分で使用できる最大桁数を設定します。
-
setMinimumFractionDigits(int)
- 数値の小数部分で使用できる最小桁数を設定します。
-
setMinimumIntegerDigits(int)
- 数値の整数部分で使用できる最小桁数を設定します。
-
setParseIntegerOnly(boolean)
- 数値を整数としてのみ解析するかどうかを設定します。
INTEGER_FIELD
public static final int INTEGER_FIELD
- FieldPositionオブジェクトを構築するためのフィールド定数です。フォーマットされた数値の整数部分の位置を返すように指定します。
- 参照:
- FieldPosition
FRACTION_FIELD
public static final int FRACTION_FIELD
- FieldPositionオブジェクトを構築するためのフィールド定数です。フォーマットされた数値の小数部分の位置を返すように指定します。
- 参照:
- FieldPosition
NumberFormat
public NumberFormat()
format
public final StringBuffer format(Object number,
StringBuffer toAppendTo,
FieldPosition pos)
- オブジェクトをフォーマットして文字列を生成します。
- オーバーライド:
- クラス Formatの format
parseObject
public final Object parseObject(String source,
ParsePosition parsePosition)
- 文字列を解析してオブジェクトを生成します。
- オーバーライド:
- クラス Formatの parseObject
format
public final String format(double number)
- フォーマットの特殊化です。
- 参照:
- format
format
public final String format(long number)
- フォーマットの特殊化です。
- 参照:
- format
format
public abstract StringBuffer format(double number,
StringBuffer toAppendTo,
FieldPosition pos)
- フォーマットの特殊化です。
- 参照:
- format
format
public abstract StringBuffer format(long number,
StringBuffer toAppendTo,
FieldPosition pos)
- フォーマットの特殊化です。
- 参照:
- format
parse
public abstract Number parse(String text,
ParsePosition parsePosition)
- 可能なら(たとえば、[Long.MIN_VALUE, Long.MAX_VALUE]の範囲で、小数部分がない場合)、Longを、そうでなければDoubleを返します。IntegerOnlyが設定されていると、小数点で止まります(または、それと同等のもの、たとえば、分数"1 2/3"では1の後で止まります)。例外はスローしません。オブジェクトが解析できない場合、インデックスは変わりません。
- 参照:
- isParseIntegerOnly, parseObject
parse
public Number parse(String text) throws ParseException
- コンビニエンスメソッド
- 例外: ParseException
- 指定の文字列が無効な場合
- 参照:
- format
isParseIntegerOnly
public boolean isParseIntegerOnly()
- このフォーマットが数値を整数としてのみ解析する場合には、真を返します。たとえば、EnglishロケールでParseIntegerOnlyが真であれば、文字列"1234."は、整数値1234として解析され、解析は"."文字で止まります。もちろん、この解析によって受け入れられる正確なフォーマットは、ロケールに依存し、NumberFormatのサブクラスによって決まります。
setParseIntegerOnly
public void setParseIntegerOnly(boolean value)
- 数値を整数としてのみ解析するかどうかを設定します。
- 参照:
- isParseIntegerOnly
getInstance
public static final NumberFormat getInstance()
- 現在のデフォルトロケールに対するデフォルトの数値フォーマットを返します。デフォルトのフォーマットは、他のファクトリメソッド getNumberInstance、getCurrencyInstance、または getPercentInstanceで提供されるスタイルの1つ、正確にはロケールに依存するいずれかです。
getInstance
public static NumberFormat getInstance(Locale inLocale)
- 指定のロケールに対するデフォルトの数値フォーマットを返します。デフォルトのフォーマットは、他のファクトリメソッドgetNumberInstance、getCurrencyInstance、または getPercentInstanceで提供されるスタイルの1つ、正確にはロケールに依存するいずれかです。
getNumberInstance
public static final NumberFormat getNumberInstance()
- 現在のデフォルトロケールに対する汎用数値フォーマットを返します。
getNumberInstance
public static NumberFormat getNumberInstance(Locale inLocale)
- 指定のロケールに対する汎用数値フォーマットを返します。
getCurrencyInstance
public static final NumberFormat getCurrencyInstance()
- 現在のデフォルトロケールに対する通貨フォーマットを返します。
getCurrencyInstance
public static NumberFormat getCurrencyInstance(Locale inLocale)
- 指定のロケールに対する通貨フォーマットを返します。
getPercentInstance
public static final NumberFormat getPercentInstance()
- 現在のデフォルトロケールに対するパーセントフォーマットを返します。
getPercentInstance
public static NumberFormat getPercentInstance(Locale inLocale)
- 指定のロケールに対するパーセントフォーマットを返します。
getAvailableLocales
public static Locale[] getAvailableLocales()
- NumberFormatsが導入されているロケールセットを入手します。
- 返り値:
- 使用可能なロケール
hashCode
public int hashCode()
- hashCodeをオーバーライドします。
- オーバーライド:
- クラス Objectの hashCode
equals
public boolean equals(Object obj)
- equalsをオーバーライドします。
- オーバーライド:
- クラスObjectの equals
clone
public Object clone()
- Cloneableをオーバーライドします。
- オーバーライド:
- クラス Formatの clone
isGroupingUsed
public boolean isGroupingUsed()
- このフォーマットでグループ化が使用される場合は、真を返します。たとえば、Englishロケールでグループ化がオンのとき、数値1234567は、"1,234,567"のようにフォーマットされます。グループセパレータと各グループのサイズは、ロケールに依存し、NumberFormatのサブクラスによって決まります。
- 参照:
- setGroupingUsed
setGroupingUsed
public void setGroupingUsed(boolean newValue)
- このフォーマットでグループ化を使用するかどうかを設定します。
- 参照:
- isGroupingUsed
getMaximumIntegerDigits
public int getMaximumIntegerDigits()
- 数値の整数部分として可能な最大桁数を返します。
- 参照:
- setMaximumIntegerDigits
setMaximumIntegerDigits
public void setMaximumIntegerDigits(int newValue)
- 数値の整数部分として可能な最大桁数を設定します。maximumIntegerDigitsは、minimumIntegerDigits以上でなければなりません。maximumIntegerDigitsの新しい値が minimumIntegerDigitsの現在の値よりも小さい場合、minimumIntegerDigitsもこの新しい値に設定されます。
- 参照:
- getMaximumIntegerDigits
getMinimumIntegerDigits
public int getMinimumIntegerDigits()
- 数値の整数部分として可能な最小桁数を返します。
- 参照:
- setMinimumIntegerDigits
setMinimumIntegerDigits
public void setMinimumIntegerDigits(int newValue)
- 数値の整数部分として可能な最小桁数を返します。minimuIntegerDigitsは、maximumIntegerDigits以下でなければなりません。minimumIntegerDigitsの新しい値が minimumIntegerDigitsの現在の値よりも大きい場合、maximumIntegerDigitsもこの新しい値に設定されます。
- 参照:
- getMinimumIntegerDigits
getMaximumFractionDigits
public int getMaximumFractionDigits()
- 数値の少数部分として可能な最大桁数を返します。
- 参照:
- setMaximumFractionDigits
setMaximumFractionDigits
public void setMaximumFractionDigits(int newValue)
- 数値の少数部分として可能な最大桁数を設定します。maximumFractionDigitsは、minimumFractionDigits以上でなければなりません。maximumFractionDigitsの新しい値が minimumFractionDigitsの現在の値よりも小さい場合、minimumFractionDigitsもこの新しい値に設定されます。
- 参照:
- getMaximumFractionDigits
getMinimumFractionDigits
public int getMinimumFractionDigits()
- 数値の少数部分として可能な最小桁数を返します。
- 参照:
- setMinimumFractionDigits
setMinimumFractionDigits
public void setMinimumFractionDigits(int newValue)
- 数値の少数部分として可能な最小桁数を設定します。minimumFractionDigitsは、maximumFractionDigits以下でなければなりません。mminmumFractionDigitsの新しい値が maximumFractionDigitsの現在の値よりも大きい場合、maximumFractionDigitsもこの新しい値に設定されます。
- 参照:
- getMinimumFractionDigits
全パッケージ クラス階層 このパッケージ 前項目 次項目 インデックス