【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メソッドの構文は下記となります。
1 |
型.parseXX(文字列, [進数]); |
パラメータ
⚫︎ 文字列:
数値に変換したい文字列を指定する
⚫︎ 進数(任意):
数値に変換する際の進数を指定する(指定しない場合は10進数)
parseXXの()に文字列を指定することで指定したString型の文字列を変換したい数値の型に変換することができます。
型がIntegerならXXはIntを、型がDoubleならXXはDoubleとなります。
文字列(String)を数値に変換するサンプルコード
文字列(String)を数値に変換するサンプルコードを紹介します。
String型からLong型へ変換する場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// 文字列を数値に変換する public class Main { public static void main(String[] args) throws Exception { String number = "1232341"; System.out.println("string:" + number); System.out.println("parseLongメソッドを使った場合"); long longVal = Long.parseLong(number); System.out.println("long:" + longVal); } } |
出力結果
string:1232341
parseLongメソッドを使った場合
long:1232341
String型からLong型へ変換されました。
String型からInt型へ変換する場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// 文字列を数値に変換する public class Main { public static void main(String[] args) throws Exception { String number = "1232341"; System.out.println("string:" + number); System.out.println("parseIntメソッドを使った場合"); int intVal = Integer.parseInt(number); System.out.println("int:" +intVal); } } |
出力結果
string:1232341
parseIntメソッドを使った場合
int:1232341
String型からInt型へ変換されました。
String型からDouble型へ変換する場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// 文字列を数値に変換する public class Main { public static void main(String[] args) throws Exception { String number = "1232341"; System.out.println("string:" + number); System.out.println("parseDoubleメソッドを使った場合"); double doubleVal = Double.parseDouble(number); System.out.println("double:" + doubleVal); } } |
出力結果
string:1232341
parseDoubleメソッドを使った場合
double:1232341.0
String型からdouble型へ変換されました。
進数を指定して文字列を数値に変換する場合
進数を指定して文字列を数値に変換する場合は、parseメソッドの第2パラメータに進数を指定します。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
// 文字列を数値に変換する public class Main { public static void main(String[] args) throws Exception { String number = "1232341"; int intVal = Integer.parseInt(numberString); double doubleVal = Double.parseDouble(numberString); // 進数を指定してparseXXメソッドを使う場合 numberString = "ABCDEF"; System.out.println("進数を指定してparseメソッドを使う場合"); Long longVal = Long.parseLong(number, 16); intVal = Integer.parseInt(number, 16); System.out.println("long :" + longVal); System.out.println("int :" + intVal); } } |
出力結果
進数を指定してparseメソッドを使う場合
long :11259375
int :11259375
ABCDEFを16進数として数値化しています。基数の範囲は、「Character.MIN_RADIX」以上「Character.MAX_RADIX」以下でなければいけません。
書式を指定して文字列を数値に変換する場合
書式を指定して文字列を数値に変換するにはDecimalFormatクラスを使用します。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
// 文字列を数値に変換する import java.text.DecimalFormat; public class Main { public static void main(String[] args) throws Exception { String numberString = "1232341"; int intVal = Integer.parseInt(numberString); double doubleVal = Double.parseDouble(numberString); // Decimal Formatを使う場合 // カンマ付き書式 numberString = "13,234"; System.out.println("DecimalFormatを使う場合(カンマ付き書式)"); DecimalFormat df = new DecimalFormat(); intVal = df.parse(numberString).intValue(); System.out.println("intval :" + intVal); // %付き書式 numberString = "3.2%"; System.out.println("DecimalFormatを使う場合(%付き書式)"); df = new DecimalFormat("#%"); doubleVal = df.parse(numberString).doubleValue(); System.out.println("double : " + doubleVal); } } |
出力結果
DecimalFormatを使う場合(カンマ付き書式)
intval :13234
DecimalFormatを使う場合(%付き書式)
double : 0.032
カンマ付き書式の文字列とパーセント付き書式の文字列を数値に変換しています。
「DecimalFormat」のインスタンスを作成する際にデフォルトコンストラクタを使うと、デフォルトのロケール、パターンを使うようになります。
パーセント付き書式を扱う場合には、そのパターンを表す文字列「#%」をパラメータとするコンストラクタを使っており、値を1/100にした小数値に変換しています。
今回のポイント
parseXXメソッドで文字列を数値に変換
文字列を数値に変換するにはparseLongメソッドやparselntメソッドなどを使用する
• parseLongメソッドやparselntメソッド、parseDoubleメソッドなどで文字列を数値に変換することができ、紹介したメソッド以外にもparseByte、parseShort、parseFloatメソッドがある
• その型の範囲を超える、整数型に小数点が入っているなどの変換対象の文字列がその型の数値として変換できなかった場合には FormatExceptionの例外が発生する
• 進数を指定して文字列を数値に変換する場合は、parseメソッドの第2パラメータに進数を指定する
• 書式を指定して文字列を数値に変換するにはDecimalFormatクラスを使用する
関連記事
数値を文字列(String)に変換するtoStringメソッドはこちらをご参考ください。
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。