試してみたかったので試してみました。
予想通りの結果になりました。
概要
文字列から数値に変換することってよくありますよね。
そのときに空文字が入ってしまうことってあると思うんです。
もしそのまま空文字を入れてしまったらどうなるのか。
結論から言うと、空文字を変換しようとするとエラーになります。
変換するときは文字列が空文字ではないか確認する必要がありますね。
文字列→数値の変換
まずは変換方法から。
結果としてInteger型(参照型)がほしいのか、int型(プリミティブ型)がほしいのかによって変換方法が違います。
Integer型の場合はInteger.valueOf()、int型の場合はInteger.parseInt()を使うみたいです。
どちらを使って変換しても良いと思います。
// Integer型の場合
Integer integer = Integer.valueOf("1");
// int型の場合
int i = Integer.parseInt("1");
数値→文字列の変換
ついでに数値から文字列への変換。
いくつかやり方はあると思いますが、基本的なものだけ。
こちらはエラーは起きないですね。
String str = String.valueOf(1);
空文字を入れてみる
空文字を入れた場合どちらもNumberFormatExceptionが返ってきます。
“abcd” のような数値へ変換できないような文字列を入れた場合と同じですね。
当然といえば当然の結果。
// NumberFormatException発生
Integer integer = Integer.valueOf("");
// NumberFormatException発生
int i = Integer.parseInt("");
// これらと同じ
Integer integer2 = Integer.valueOf("abcd");
int i2 = Integer.parseInt("abcd");
まとめ
通常の変換できない文字列を入れた場合と同じ結果になりました。
エラーが起きやすいメソッドだと思うので、文字列の形式チェックであったり、例外処理だったりをしっかりする必要がありそうです。
文字列型の数値以外が入らないように注意しましょう。
ABOUT ME