バックエンド

【Java】文字列を数値に変換するときに空文字を渡すとどうなる?【Integer.parseInt(), Integer.valueOf()】

string-to-int
野田竣介

今回はこのような質問をいただきました。

文字列を数値に変換するときに空文字を渡すとどうなるんだろう?

なんとなくエラーになると思うけど、やっぱり実際にやってみないとわからないですよね。

ということで今回は実際にやってみたいと思います!

空文字を渡すとNumberFormatExceptionが発生!

なんとなく予想できたと思いますが、エラーになってしまいます。

NumberFormatExceptionですね。

“abcd” のような数値へ変換できないような文字列を入れた場合と同じですね。

// NumberFormatException発生
Integer integer = Integer.valueOf("");

// NumberFormatException発生
int i = Integer.parseInt("");

// これらと同じ
Integer integer2 = Integer.valueOf("abcd");
int i2 = Integer.parseInt("abcd");

文字列、数値の変換方法も覚えよう!

ついでに文字列→数値、数値→文字列の変換処理のサンプルを書いておきます。

文字列→数値の変換

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が発生します。

通常の変換できない文字列を入れた場合と同じ結果ですね。

エラーが起きやすいメソッドだと思うので、文字列の形式チェックであったり、例外処理だったりをしっかりする必要がありそうです。

文字列型の数値以外が入らないように注意しましょう!

あとがき

こういうのってたまに気になって試しちゃいますよね。

Javaだとエラーで止まってくれるから良いけど、スクリプト言語だと見落としてしまいそう…

それなりに変換する機会はあると思うので注意しておきたいですね。

記事URLをコピーしました