こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、11年目エンジニアです。
この記事では、 JavaでString型をint型に変換できるInteger.parseIntメソッドについて
- Integer.parseIntメソッドとは
- Integer.parseIntメソッドを使うときの注意点
- Integer.parseIntメソッドを使ったサンプルプログラム
と、丁寧に解説していきます。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows10 |
---|---|
IntelliJ IDEAのエディション | Community(無料版) |
IntelliJ IDEAのバージョン | 2021.3.2 |
プロジェクト | Javaプロジェクト |
SDK | Oracle OpenJDK version17.0.2 |
Javaを動かすためにIntelliJ IDEAを使っています。
IntelliJ IDEAのインストールは、下の記事をご参考ください。
Integer.parseIntメソッドとは
Integer.parseIntメソッドとは、引数に与えられたString型の数値をint型に変換して返すメソッドです。
Integer.parseIntメソッドは使い方が
- パターン1:変換する文字列のみ指定
- パターン2:変換する文字列と基数を指定
の合計2パターンあります。
それぞれ解説します。
パターン1:変換する文字列のみ指定
変換する文字列のみ指定の場合、引数で指定された文字列を10進数として扱いint型へ変換して返します。
使い方サンプルは以下です。
1 2 |
String sample = "3"; int result = Integer.parseInt(sample); |
変数resultにはint型の
1 |
3 |
という値が返されます。
パターン2:変換する文字列と基数を指定
変換する文字列と基数を指定の場合、
- 第一引数の値:変換する文字列
- 第二引数の値:もとにする基数
としてint型に変換して返します。
使い方サンプルは以下です。
1 2 |
String sample = "11"; int result = Integer.parseInt(sample, 2); |
Integer.parseIntメソッドの第二引数で指定されている値が「2」なので、変数sampleは2進数として扱われます。
「11」は2進数の文字列とされて整数に変換するので、変数resultにはint型の
1 |
3 |
という値が返されます。
Integer.parseIntメソッドを使うときの注意点
Integer.parseIntメソッドを使うときの注意点として
- 数値でない文字列は変換できない
- nullも変換できない
- 基数で扱わない数は変換できない(第二引数を指定した場合のみ)
の3点があります。
それぞれ解説します。
注意点その1:数値でない文字列は変換できない
注意点その1の数値でない文字列は変換できない、についてです。
Integer.parseIntメソッドでは、数値でない文字列は変換できません。
なのでたとえば
1 2 |
String sample = "test"; int result = Integer.parseInt(sample); |
文字列をInteger.parseIntメソッドでint型に変換しようとした場合、コンパイルは通るものの実行すると
1 |
Exception in thread "main" java.lang.NumberFormatException |
という例外が発生します。
空文字列も同様な例外が発生します。
注意点その2:nullも変換できない
注意点その2のnullも変換できない、についてです。
Integer.parseIntメソッドでは、nullも変換できません。
注意点その1と同様に
1 2 |
String sample = null; int result = Integer.parseInt(sample); |
nullをInteger.parseIntメソッドでint型に変換しようとした場合、コンパイルは通るものの実行すると
1 |
Exception in thread "main" java.lang.NullPointerException |
という例外が発生します。
注意点その3:基数で扱わない数は変換できない(第二引数を指定した場合のみ)
注意点その3は、第二引数に基数を指定したときのみですが基数で扱わない数は変換できない、についてです。
「基数で扱わない数は変換できない」はたとえば
1 2 |
String sample = "5"; int result = Integer.parseInt(sample, 2); |
というように基数が「2」なので2進数として変数sampleを変換しようとしますが「5」は2進数では扱いません。
このような時に実行すると
1 |
Exception in thread "main" java.lang.NullPointerException |
という例外が発生します。
では、次の章で実際に使ってみます。
Integer.parseIntメソッドを解説するプログラムの概要
Integer.parseIntメソッドを解説するプログラムでは
- 変換する文字列のみ指定した場合
- 変換する文字列と基数を指定した場合
の2パターンでString型の文字列から、Integer.parseIntメソッドで変換します。
変換後の値を表示させ変換できているかを確認します。
解説で使うJavaプログラムは、Sampleプロジェクトのsampleパッケージ内にある、とします。
Javaサンプルプログラム
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 |
package sample; public class Sample { public static void main(String[] args) { System.out.println("■Integer.parseIntメソッドサンプル"); System.out.println("・パターン1:変換する文字列のみ指定した場合"); String str1 = "7"; String str2 = "-9"; int number1 = Integer.parseInt(str1); int number2 = Integer.parseInt(str2); System.out.println("正の整数number1の値:" + number1); System.out.println("負の整数number2の値:" + number2); System.out.println("・パターン2:変換する文字列と基数を指定した場合"); String str3 = "101"; String str4 = "B"; int number3 = Integer.parseInt(str3, 2); int number4 = Integer.parseInt(str4, 16); System.out.println("2を基数とした正の整数number3の値:" + number3); System.out.println("16を基数とした負の整数number4の値:" + number4); } } |
実行結果
Javaプログラムを実行します。
実行のやり方は
- プログラムを右クリックして実行
- 実行タブから実行
- ガターから実行
の3種類あるので、いずれかで実行します。
詳しい解説は以下の記事をご参考ください。
1 2 3 4 5 6 7 |
■Integer.parseIntメソッドサンプル ・パターン1:変換する文字列のみ指定した場合 正の整数number1の値:7 負の整数number2の値:-9 ・パターン2:変換する文字列と基数を指定した場合 2を基数とした正の整数number3の値:5 16を基数とした負の整数number4の値:11 |
すべての文字列がint型に変換できていることが確認できました。
まとめ:Integer.parseIntメソッドを使ってみよう!
以上がJavaのInteger.parseIntメソッドについての解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント