Javaで文字列を数値に変換したいときはどうするか?
文字列として入力された値を変換して使いたいというときなど、そこまで頻繁ではないが、Javaでプログラムを組んでいると必要なことがあるだろう。
このページでは、ラッパークラスを用いて文字列を数値に変換する方法をお伝えしよう。
文字列から数値への変換
「文字列として入力された2つの値を使って計算処理をしたい」といった場合など、文字列から数値に変換する必要が出てくる。
文字列はStringクラスで扱うが、Stringクラスには文字列を数値に変換する機能は用意されていない。
Javaでは、数値はその大きさで扱う型が違っている。また、数値を扱う型は通常基本型だが、基本型には格納された値を操作する機能が用意されていないので、各基本型に対応したラッパークラスで文字列から数値へ変換する処理を行う。
各クラスの変換メソッドは以下の通りだ。
Byte型
Byte型オブジェクト.parseByte(String s)
戻り値の型 |
public static byte |
内容 |
文字列の引数を符号付き 10 進数の整数型として返す。文字列にある文字はすべて、10 進数である必要がある。 ただし、1 番目の文字だけは、負の値を表すためにマイナス記号であってもかまわない。その場合、結果として得られる整数値が返される。 パラメータ: s - byte型の範囲(精度)の大きさの文字列 戻り値: 10 進数の引数で表される整数値 |
Short型
Short型オブジェクト.parseShort(String s)
戻り値の型 |
public static short |
内容 |
文字列の引数を符号付き 10 進数の整数型として返す。文字列にある文字はすべて、10 進数である必要がある。 ただし、1 番目の文字だけは、負の値を表すためにマイナス記号であってもかまわない。その場合、結果として得られる整数値が返される。 パラメータ: s - short型の範囲(精度)の大きさの文字列 戻り値: 10 進数の引数で表される整数値 |
Integer型
Integer型オブジェクト.parseInt(String s)
戻り値の型 |
public static int |
内容 |
文字列の引数を符号付き 10 進数の整数型として返す。文字列にある文字はすべて、10 進数である必要がある。 ただし、1 番目の文字だけは、負の値を表すためにマイナス記号であってもかまわない。その場合、結果として得られる整数値が返される。 パラメータ: s - int型の範囲(精度)の大きさの文字列
戻り値: 10 進数の引数で表される整数値 |
Long型
Long型オブジェクト.parseLong(String s)
戻り値の型 |
public static long |
内容 |
文字列の引数を符号付き 10 進数の整数型として返す。文字列にある文字はすべて、10 進数である必要がある。 ただし、1 番目の文字だけは、負の値を表すためにマイナス記号であってもかまわない。その場合、結果として得られる整数値が返される。 L または l を型指定子として文字列の末尾に付けることは、Java プログラム言語のソースコードの場合とは違って許されない。ただし、基数が 22 よりも大きい桁の数字には、L またはl が現われます。 パラメータ: s - long型の範囲(精度)の大きさの文字列 戻り値: 10 進数の引数で表される整数値 |
Float型
Float型オブジェクト.parseFloat(String s)
戻り値の型 |
public static float |
内容 |
Float クラスの valueOf メソッドを実行した場合と同様に、指定された String が表す値に初期化された新しい float 値を返す。 パラメータ: s -解析される文字列 戻り値: 文字列引数で表される float 値 |
Double型
Double型オブジェクト.parseDouble(String s)
戻り値の型 |
public static double |
内容 |
Double クラスの valueOf メソッドを実行した場合と同様に、指定された String が表す値に初期化された新しい double 値を返す。 パラメータ: s -解析される文字列 戻り値: 文字列引数で表される double 値 |
各ラッパークラスともに、引数で渡された文字列が結果の型の範囲内でない場合、エラー(NumberFormatException )が発生し処理が終了してしまう。文字列にどのような型の範囲の値が入るか意識してクラスを選ぶようにしよう。
サンプルコード
1 2 3 4 5 6 7 8 9 10 |
public class JavaApp4 { public static void main(String[] args) { String priceStr = "12,345";//[1] String priceStr1 = priceStr.replaceAll(",", "");//[2] int price = Integer.parseInt(priceStr1);//[3] System.out.println(priceStr + "を数値に変換した値 : " + price);//[4] } } |
実行結果
1 |
12,345を数値に変換した値 : 12345 |
サンプルコードの説明
- [1] String型の変数priceStrを「12,345」で初期化。
- [2] priceStrの区切り文字「,」をStringクラスのreplaceAllメソッドを使用して取り除き、変数priceStr1へ代入。
- [3] 変数priceStr1を、IntegerクラスのparseIntメソッドを使用してint型の整数に変換し、変数priceへ代入。
- [4] 変数priceの値を表示。
まとめ
このページではJavaで文字列を数値に変換して使用する方法をお伝えした。
「数値→文字列」は少ないだろうが、「文字列から数値」は頻繁にあるはずだ。参考にしていただきたい。
ラッパークラスの詳細については下記ページを参考にしてほしい。