全パッケージ  クラス階層  このパッケージ  前項目  次項目  インデックス

クラス 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);
 
通常の数値フォーマットを得るには、getInstancegetNumberInstanceを使用します。通貨数値フォーマットを得るには、getCurrencyInstance を使用します。そして、パーセントを表示するフォーマットを得るには、getPercentInstanceを使用します。このフォーマットを使うと、0.53などの小数点以下は53%のように表示されます。

さらに、setMinimumFractionDigitsなどのメソッドを使えば、数値の表示を制御することができます。フォーマットや解析をさらに制御したい場合、あるいはこのような制御をユーザが使えるようにしたい場合は、ファクトリメソッドから得られる NumberFormatDecimalNumberFormatにキャストすることもできます。これはほとんどのロケールで有効ですが、有効にならないロケールの場合に備えて、これは tryブロックに指定してください。

さらに、parseformatメソッドの形式を ParsePositionFieldPositionともに使用すれば、次のことが可能です。

たとえば、複数の数値を2つの方法で位置合わせすることができます。
  1. モノスペースフォントを使い、位置合わせにスペースを入れる場合には、フォーマット呼び出しで FieldPositionを渡すことができます。このとき、field = INTEGER_FIELDとします。出力では、getEndIndexが、整数の最後の文字と小数点の間のオフセットに設定されます。文字列の前に (desiredSpaceCount - getEndIndex)のスペースを追加してください。
  2. プロポーショナルフォントを使う場合には、スペースを追加する代わりに、文字列の幅をその始めから getEndIndexまでピクセル単位で測ります。次に、テキストを描く前に、(desiredPixelWidth - widthToAlignmentPoint)だけペンを移動します。これは、小数点を扱うことはできませんが、終わりに追加の文字がある場合にも有効です。たとえば、-12を "(12)"にするように、負の数にかっこをつける場合です。

参照:
DecimalFormat, ChoiceFormat

Variable Index

 o FRACTION_FIELD
FieldPositionオブジェクトを構築するためのフィールド定数です。
 o INTEGER_FIELD
FieldPositionオブジェクトを構築するためのフィールド定数です。

Constructor Index

 o NumberFormat()

Method Index

 o clone()
Cloneableをオーバーライドします。
 o equals(Object)
equalsをオーバーライドします。
 o format(double)
フォーマットの特殊化です。
 o format(double, StringBuffer, FieldPosition)
フォーマットの特殊化です。
 o format(long)
フォーマットの特殊化です。
 o format(long, StringBuffer, FieldPosition)
フォーマットの特殊化です。
 o format(Object, StringBuffer, FieldPosition)
オブジェクトをフォーマットして文字列を生成します。
 o getAvailableLocales()
NumberFormatsが導入されるロケールセットを入手します。
 o getCurrencyInstance()
現在のデフォルトロケールに対する通貨フォーマットを返します。
 o getCurrencyInstance(Locale)
指定のロケールに対する通貨フォーマットを返します。
 o getInstance()
現在のデフォルトロケールに対するデフォルトの数値フォーマットを返します。
 o getInstance(Locale)
指定のロケールに対するデフォルトの数値フォーマットを返します。
 o getMaximumFractionDigits()
数値の小数部分で使用できる最大桁数を返します。
 o getMaximumIntegerDigits()
数値の整数部分で使用できる最大桁数を返します。
 o getMinimumFractionDigits()
数値の小数部分で使用できる最小桁数を返します。
 o getMinimumIntegerDigits()
数値の整数部分で使用できる最小桁数を返します。
 o getNumberInstance()
現在のデフォルトロケールに対する汎用数値フォーマットを返します。
 o getNumberInstance(Locale)
指定のロケールに対する汎用数値フォーマットを返します。
 o getPercentInstance()
現在のデフォルトロケールに対するパーセントフォーマットを返します。
 o getPercentInstance(Locale)
指定のロケールに対するパーセントフォーマットを返します。
 o hashCode()
hashCodeをオーバーライドします。
 o isGroupingUsed()
このフォーマットでグループ化が使用される場合、真を返します。
 o isParseIntegerOnly()
このフォーマットが数値を整数としてのみ解析する場合、真を返します。
 o parse(String)
コンビニエンスメソッドです。
 o parse(String, ParsePosition)
可能なら(たとえば、[Long.MIN_VALUE, Long.MAX_VALUE]の範囲で、小数部分がない場合)、Longを、そうでなければDoubleを返します。
 o parseObject(String, ParsePosition)
文字列を解析してオブジェクトを生成します。
 o setGroupingUsed(boolean)
このフォーマットでグループ化を使用するかどうかを設定します。
 o setMaximumFractionDigits(int)
数値の小数部分で使用できる最大桁数を設定します。
 o setMaximumIntegerDigits(int)
数値の整数部分で使用できる最大桁数を設定します。
 o setMinimumFractionDigits(int)
数値の小数部分で使用できる最小桁数を設定します。
 o setMinimumIntegerDigits(int)
数値の整数部分で使用できる最小桁数を設定します。
 o setParseIntegerOnly(boolean)
数値を整数としてのみ解析するかどうかを設定します。

Variables

 o INTEGER_FIELD
  public static final int INTEGER_FIELD
FieldPositionオブジェクトを構築するためのフィールド定数です。フォーマットされた数値の整数部分の位置を返すように指定します。
参照:
FieldPosition
 o FRACTION_FIELD
  public static final int FRACTION_FIELD
FieldPositionオブジェクトを構築するためのフィールド定数です。フォーマットされた数値の小数部分の位置を返すように指定します。
参照:
FieldPosition

Constructors

 o NumberFormat
  public NumberFormat()

Methods

 o format
  public final StringBuffer format(Object number,
                                   StringBuffer toAppendTo,
                                   FieldPosition pos)
オブジェクトをフォーマットして文字列を生成します。

オーバーライド:
クラス Formatformat
 o parseObject
  public final Object parseObject(String source,
                                  ParsePosition parsePosition)
文字列を解析してオブジェクトを生成します。

オーバーライド:
クラス FormatparseObject
 o format
  public final String format(double number)
フォーマットの特殊化です。

参照:
format
 o format
  public final String format(long number)
フォーマットの特殊化です。

参照:
format
 o format
  public abstract StringBuffer format(double number,
                                      StringBuffer toAppendTo,
                                      FieldPosition pos)
フォーマットの特殊化です。

参照:
format
 o format
  public abstract StringBuffer format(long number,
                                      StringBuffer toAppendTo,
                                      FieldPosition pos)
フォーマットの特殊化です。

参照:
format
 o parse
  public abstract Number parse(String text,
                               ParsePosition parsePosition)
可能なら(たとえば、[Long.MIN_VALUE, Long.MAX_VALUE]の範囲で、小数部分がない場合)、Longを、そうでなければDoubleを返します。IntegerOnlyが設定されていると、小数点で止まります(または、それと同等のもの、たとえば、分数"1 2/3"では1の後で止まります)。例外はスローしません。オブジェクトが解析できない場合、インデックスは変わりません。

参照:
isParseIntegerOnly, parseObject
 o parse
  public Number parse(String text) throws ParseException
コンビニエンスメソッド

例外: ParseException
指定の文字列が無効な場合
参照:
format
 o isParseIntegerOnly
  public boolean isParseIntegerOnly()
このフォーマットが数値を整数としてのみ解析する場合には、真を返します。たとえば、EnglishロケールでParseIntegerOnlyが真であれば、文字列"1234."は、整数値1234として解析され、解析は"."文字で止まります。もちろん、この解析によって受け入れられる正確なフォーマットは、ロケールに依存し、NumberFormatのサブクラスによって決まります。

 o setParseIntegerOnly
  public void setParseIntegerOnly(boolean value)
数値を整数としてのみ解析するかどうかを設定します。

参照:
isParseIntegerOnly
 o getInstance
  public static final NumberFormat getInstance()
現在のデフォルトロケールに対するデフォルトの数値フォーマットを返します。デフォルトのフォーマットは、他のファクトリメソッド getNumberInstance、getCurrencyInstance、または getPercentInstanceで提供されるスタイルの1つ、正確にはロケールに依存するいずれかです。

 o getInstance
  public static NumberFormat getInstance(Locale inLocale)
指定のロケールに対するデフォルトの数値フォーマットを返します。デフォルトのフォーマットは、他のファクトリメソッドgetNumberInstance、getCurrencyInstance、または getPercentInstanceで提供されるスタイルの1つ、正確にはロケールに依存するいずれかです。

 o getNumberInstance
  public static final NumberFormat getNumberInstance()
現在のデフォルトロケールに対する汎用数値フォーマットを返します。

 o getNumberInstance
  public static NumberFormat getNumberInstance(Locale inLocale)
指定のロケールに対する汎用数値フォーマットを返します。

 o getCurrencyInstance
  public static final NumberFormat getCurrencyInstance()
現在のデフォルトロケールに対する通貨フォーマットを返します。

 o getCurrencyInstance
  public static NumberFormat getCurrencyInstance(Locale inLocale)
指定のロケールに対する通貨フォーマットを返します。

 o getPercentInstance
  public static final NumberFormat getPercentInstance()
現在のデフォルトロケールに対するパーセントフォーマットを返します。

 o getPercentInstance
  public static NumberFormat getPercentInstance(Locale inLocale)
指定のロケールに対するパーセントフォーマットを返します。

 o getAvailableLocales
  public static Locale[] getAvailableLocales()
NumberFormatsが導入されているロケールセットを入手します。

返り値:
使用可能なロケール
 o hashCode
  public int hashCode()
hashCodeをオーバーライドします。

オーバーライド:
クラス ObjecthashCode
 o equals
  public boolean equals(Object obj)
equalsをオーバーライドします。

オーバーライド:
クラスObjectequals
 o clone
  public Object clone()
Cloneableをオーバーライドします。

オーバーライド:
クラス Formatclone
 o isGroupingUsed
  public boolean isGroupingUsed()
このフォーマットでグループ化が使用される場合は、真を返します。たとえば、Englishロケールでグループ化がオンのとき、数値1234567は、"1,234,567"のようにフォーマットされます。グループセパレータと各グループのサイズは、ロケールに依存し、NumberFormatのサブクラスによって決まります。

参照:
setGroupingUsed
 o setGroupingUsed
  public void setGroupingUsed(boolean newValue)
このフォーマットでグループ化を使用するかどうかを設定します。

参照:
isGroupingUsed
 o getMaximumIntegerDigits
  public int getMaximumIntegerDigits()
数値の整数部分として可能な最大桁数を返します。

参照:
setMaximumIntegerDigits
 o setMaximumIntegerDigits
  public void setMaximumIntegerDigits(int newValue)
数値の整数部分として可能な最大桁数を設定します。maximumIntegerDigitsは、minimumIntegerDigits以上でなければなりません。maximumIntegerDigitsの新しい値が minimumIntegerDigitsの現在の値よりも小さい場合、minimumIntegerDigitsもこの新しい値に設定されます。

参照:
getMaximumIntegerDigits
 o getMinimumIntegerDigits
  public int getMinimumIntegerDigits()
数値の整数部分として可能な最小桁数を返します。

参照:
setMinimumIntegerDigits
 o setMinimumIntegerDigits
  public void setMinimumIntegerDigits(int newValue)
数値の整数部分として可能な最小桁数を返します。minimuIntegerDigitsは、maximumIntegerDigits以下でなければなりません。minimumIntegerDigitsの新しい値が minimumIntegerDigitsの現在の値よりも大きい場合、maximumIntegerDigitsもこの新しい値に設定されます。

参照:
getMinimumIntegerDigits
 o getMaximumFractionDigits
  public int getMaximumFractionDigits()
数値の少数部分として可能な最大桁数を返します。

参照:
setMaximumFractionDigits
 o setMaximumFractionDigits
  public void setMaximumFractionDigits(int newValue)
数値の少数部分として可能な最大桁数を設定します。maximumFractionDigitsは、minimumFractionDigits以上でなければなりません。maximumFractionDigitsの新しい値が minimumFractionDigitsの現在の値よりも小さい場合、minimumFractionDigitsもこの新しい値に設定されます。

参照:
getMaximumFractionDigits
 o getMinimumFractionDigits
  public int getMinimumFractionDigits()
数値の少数部分として可能な最小桁数を返します。

参照:
setMinimumFractionDigits
 o setMinimumFractionDigits
  public void setMinimumFractionDigits(int newValue)
数値の少数部分として可能な最小桁数を設定します。minimumFractionDigitsは、maximumFractionDigits以下でなければなりません。mminmumFractionDigitsの新しい値が maximumFractionDigitsの現在の値よりも大きい場合、maximumFractionDigitsもこの新しい値に設定されます。

参照:
getMinimumFractionDigits

全パッケージ  クラス階層  このパッケージ  前項目  次項目  インデックス