【Java】parseXXメソッドを使って文字列(String)を数値に変換する!

文字列(String)を数値に変換するには数値型のラッパークラスのparseXXメソッドを使用します。

XXにはIntやFloatなどの変換したい数値の型が入りますのでByte、Short、Integer、Long、Floatなど、自分が変換したい数値の型へ変換することができます。
しかし、変換対象の文字列がその型の数値として変換できなかった場合には FormatExceptionの例外が発生します。

今回は数値型のラッパークラスのparseXXメソッドを使って、文字列を以下の場合で数値の型に変換してみます。

⚫︎ parseLongを使用してString型からLong型へ変換する場合
⚫︎ parseIntを使用してString型からInt型へ変換する場合
⚫︎ parseDoubleを使用してString型からDouble型へ変換する場合
⚫︎ 基数を指定して文字列を数値に変換する場合
⚫︎ 書式を指定して文字列を数値に変換する場合

parseXXメソッドとは

parseXXメソッドは数値形式の文字列を数値型に変換することができます。

parseXXメソッドの書き方

parseXXメソッドの構文は下記となります。

パラメータ

⚫︎ 文字列:
数値に変換したい文字列を指定する
⚫︎ 進数(任意):
数値に変換する際の進数を指定する(指定しない場合は10進数)

parseXXの()に文字列を指定することで指定したString型の文字列を変換したい数値の型に変換することができます。
型がIntegerならXXはIntを、型がDoubleならXXはDoubleとなります。

文字列(String)を数値に変換するサンプルコード

文字列(String)を数値に変換するサンプルコードを紹介します。

String型からLong型へ変換する場合

出力結果

string:1232341
parseLongメソッドを使った場合
long:1232341

String型からLong型へ変換されました。

String型からInt型へ変換する場合

出力結果

string:1232341
parseIntメソッドを使った場合
int:1232341

String型からInt型へ変換されました。

String型からDouble型へ変換する場合

出力結果

string:1232341
parseDoubleメソッドを使った場合
double:1232341.0

String型からdouble型へ変換されました。

進数を指定して文字列を数値に変換する場合

進数を指定して文字列を数値に変換する場合は、parseメソッドの第2パラメータに進数を指定します。

出力結果

進数を指定してparseメソッドを使う場合
long :11259375
int :11259375

ABCDEFを16進数として数値化しています。基数の範囲は、「Character.MIN_RADIX」以上「Character.MAX_RADIX」以下でなければいけません。

書式を指定して文字列を数値に変換する場合

書式を指定して文字列を数値に変換するにはDecimalFormatクラスを使用します。

出力結果

DecimalFormatを使う場合(カンマ付き書式)
intval :13234

DecimalFormatを使う場合(%付き書式)
double : 0.032

カンマ付き書式の文字列とパーセント付き書式の文字列を数値に変換しています。
「DecimalFormat」のインスタンスを作成する際にデフォルトコンストラクタを使うと、デフォルトのロケール、パターンを使うようになります。

パーセント付き書式を扱う場合には、そのパターンを表す文字列「#%」をパラメータとするコンストラクタを使っており、値を1/100にした小数値に変換しています。

今回のポイント

parseXXメソッドで文字列を数値に変換

文字列を数値に変換するにはparseLongメソッドやparselntメソッドなどを使用する

• parseLongメソッドやparselntメソッド、parseDoubleメソッドなどで文字列を数値に変換することができ、紹介したメソッド以外にもparseByteparseShortparseFloatメソッドがある

• その型の範囲を超える、整数型に小数点が入っているなどの変換対象の文字列がその型の数値として変換できなかった場合には FormatExceptionの例外が発生する

• 進数を指定して文字列を数値に変換する場合は、parseメソッドの第2パラメータに進数を指定する

• 書式を指定して文字列を数値に変換するにはDecimalFormatクラスを使用する

関連記事

数値を文字列(String)に変換するtoStringメソッドはこちらをご参考ください。

Writer

ST

株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。

最新の案件情報