Integer.parseIntとは?
Integer.parseIntは、文字列(String型)を整数の数値(int型)に変換するためのメソッドです。
実際の業務で考えると、ユーザーが画面の入力フォームに「3」と入力したとき、プログラム側には最初、計算ができない文字の3として届く場合があります。このままでは「商品の金額 × 3」といった掛け算の計算ができません。そこで、Integer.parseIntを使って「計算ができる数値の3」に変換処理を行います。
Javaのプログラムでは、画面から送られてくるデータやファイルから読み込んだデータは、数字であっても最初は文字として扱われます。そのため、計算を行う前には必ずInteger.parseIntのような変換処理が必要になります。
たとえば文字列の「123」を渡すと、int型の123に変換されます。
Integer.parseIntの特徴
- 文字列を数値に変換して足し算や大小の比較ができるようにする
- abcのような数値に変換できない文字を渡すとNumberFormatExceptionエラーが発生する
- エラーでプログラムが止まるのを防ぐためにtry-catch文と組み合わせて使う
- 通常の10進数だけでなく2進数や16進数の文字列も数値に変換できる
プログラムの中で文字データを数値として扱い、正しく計算させるために欠かせない機能です。
基本構文
Integer.parseIntには主に2つの構文があります。1つ目は文字列を10進数の整数として変換するもの、2つ目は基数を指定して変換するものです。それぞれの使い方を見ていきましょう。
まずは、もっとも基本的な構文です。引数に数値を表す文字列を渡すと、対応するint型の値が返されます。
出力結果
456この例では、文字列の「456」を数値に変換して画面に出力しています。まず、Integer.parseIntメソッドの引数に文字列の「456」を渡すことで、計算ができるint型の数値である456を取り出します。取り出した数値を変数numberに代入し、System.out.printlnで出力する仕組みです。
次に、基数を指定する構文です。第2引数に基数を渡すことで、10進数以外の文字列も変換できます。以下の例では16進数の文字列「1A」を10進数の整数に変換しています。
出力結果
26この例では、16進数で書かれた文字列を10進数の数値に変換して画面に出力しています。まず、Integer.parseIntメソッドの第1引数に文字列の「1A」を渡し、第2引数に基数となる16を指定します。これにより、16進数の「1A」が10進数の26に変換され、変数hexNumberに代入されて出力されます。
最後に、変換できない文字列を渡した場合の動作も確認しておきましょう。数値として解釈できない文字列を渡すとNumberFormatExceptionが発生します。
出力結果
変換できません: For input string: "hello"この例では、数値に変換できない文字列が渡されたときにエラーをキャッチして記述したメッセージを出力しています。tryブロックの中で「hello」という文字を数値に変換しようとしますが、数値ではないためNumberFormatExceptionエラーが発生します。プログラムが途中で止まらないよう、catchブロックでエラーを受け取り、安全に例外処理を行う仕組みです。
Integer.parseIntは文字列が正しく数値を表しているかどうかに依存するため、例外処理を合わせて実装することが推奨されます。
実用例
ここからは、Integer.parseIntを使った実践的なプログラムの例を紹介します。基本的な変換から、エラー処理、基数の指定、コマンドライン引数の活用まで、開発でよく使われる記述パターンをまとめています。
各プログラムはそのまま実行できる形にしています。手元で動かしながら、出力結果と照らし合わせて確認してみてください。
文字列の数値をint型に変換する基本的な使い方
Integer.parseIntのもっとも基礎的な使い方です。文字列として定義した数値をint型に変換し、そのまま計算に使用しています。
出力結果
ネコの年齢: 5
人間換算の年齢: 35この例では、文字列として定義されたネコの年齢を数値に変換し、掛け算を行って結果を出力しています。
まず、String型の変数catAgeに代入された「"5"」をInteger.parseIntでint型の5に変換して変数ageに代入します。数値に変換されているため、「age * 7」という掛け算が可能になり、人間換算の年齢である35を正しく算出できます。
負の数を含む文字列を変換する
Integer.parseIntは先頭にマイナス記号が付いた文字列も正しく変換できます。負の数を扱う際の動作を確認してみましょう。
出力結果
気温: -15度
絶対値: 15度この例では、マイナスの符号がついた気温の文字列を負の整数に変換し、その値と絶対値を画面に出力しています。
Integer.parseIntに文字列の"-15"を渡すと、先頭のハイフンを負の符号として認識し、int型の-15に変換します。変数tempに数値として格納されるため、Math.absメソッドを使って絶対値の15を求める計算も行えます。
2進数・8進数・16進数の文字列を変換する
Integer.parseIntの第2引数に基数を指定することで、10進数以外の文字列を変換できます。2進数、8進数、16進数の変換例を見てみましょう。
出力結果
2進数 1010 → 10
8進数 17 → 15
16進数 FF → 255この例では、さまざまな進数で表現された文字列をすべて10進数の数値に変換して画面に出力しています。
第2引数に「2」「8」「16」を指定することで、それぞれの文字列を2進数、8進数、16進数として解釈させます。変換された結果はすべて通常のint型として扱えるようになり、それぞれの10進数の値が表示されます。
不正な文字列に対して例外処理を行う
ユーザー入力など、確実に数値である保証がない文字列を変換する場合は、try-catch文で例外を捕捉する必要があります。
出力結果
42 → 変換成功: 42
イヌ → 変換失敗
100 → 変換成功: 100この例では、配列内の複数の文字列を順番に数値へ変換し、変換の成否を1件ずつ出力しています。
まず、for文で配列の要素を1つずつ取り出し、tryブロックの中でInteger.parseIntを実行します。「イヌ」のときは数値に変換できずエラーとなりますが、catchブロックが動作するためプログラムは止まらず、次の「100」の処理へと進みます。
文字列の配列を合計値に変換する
配列に格納されている複数の点数データを、Integer.parseIntで順番に数値に変換しながら合計点と平均点を計算します。
出力結果
合計点: 433
平均点: 86この例では、文字列の配列に入っている5つの点数データをすべて数値に変換し、合計点と平均点を計算して出力しています。拡張for文を使って配列から1つずつ点数の文字列を取り出し、Integer.parseIntで数値に変換しながら変数totalに足し合わせていきます。すべての加算が終わったあと、合計値を要素数で割って平均点を算出します。
入力値の範囲チェックと組み合わせて使う
Integer.parseIntで変換した値が、想定する範囲内に収まっているかを検証するパターンです。年齢の入力を例に、変換と範囲チェックを組み合わせます。
出力結果
入力された年齢: 25この例では、文字列から変換した年齢の数値が、正しい範囲にあるかをチェックして結果を出力しています。
まず、Integer.parseIntで文字列の「"25"」を数値の25に変換します。その後、if文の条件式を使って「0以上かつ150以下」というルールを満たしているかを確認し、問題がない場合のみ入力された年齢を表示します。
まとめ
JavaのInteger.parseIntは、文字列を整数の数値に変換する重要なメソッドです。基本構文から実際の活用例まで解説しました。
Integer.parseIntが活躍する場面は次のようなケースです。
Integer.parseIntが活躍する場面
- 画面の入力フォームから受け取った文字データを数値に変えて計算したいとき
- ファイルから読み込んだ数字のテキストデータを集計したいとき
- 16進数や2進数で表現された文字データを10進数の数値に変換したいとき
Integer.parseIntを用いる上で、押さえておきたいポイントを覚えておきましょう。
重要なポイント
- 数値に変換できない文字が渡されるとエラーが発生する
- プログラムの強制終了を防ぐために例外処理と組み合わせて使う
- int型が扱える数値の範囲を超えた文字列は変換できない
初めてJavaを学ぶ方も、紹介したプログラムを実際に書いて、基本的な使い方を試してみてください。正しいエラー処理も含めて書き方をマスターし、実用的なプログラムを作成できるようになりましょう。