Java Integer.parseIntの使い方

この記事のポイント

JavaのInteger.parseIntは、文字列(String型)を整数の数値(int型)に変換するためのメソッドです。

この記事を読むと、次のようなことが身に付きます。

  • 文字列を数値に変換する基本的な書き方がわかる
  • エラーでプログラムが止まるのを防ぐ例外処理の記述方法がわかる
  • 2進数や16進数の文字列を数値に変換する方法がわかる

文字列を数値に変換する処理は、実際の開発でよく使用されます。マスターしておけば役立つこと間違いなしです。

目次

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進数の文字列も数値に変換できる

プログラムの中で文字データを数値として扱い、正しく計算させるために欠かせない機能です。

【関連】
Javaをもっと詳しく学ぶならpaizaラーニング

基本構文

Integer.parseIntには主に2つの構文があります。1つ目は文字列を10進数の整数として変換するもの、2つ目は基数を指定して変換するものです。それぞれの使い方を見ていきましょう。

まずは、もっとも基本的な構文です。引数に数値を表す文字列を渡すと、対応するint型の値が返されます。

public class Main { public static void main(String[] args) { int number = Integer.parseInt("456"); System.out.println(number); } }

出力結果

456

この例では、文字列の「456」を数値に変換して画面に出力しています。まず、Integer.parseIntメソッドの引数に文字列の「456」を渡すことで、計算ができるint型の数値である456を取り出します。取り出した数値を変数numberに代入し、System.out.printlnで出力する仕組みです。

次に、基数を指定する構文です。第2引数に基数を渡すことで、10進数以外の文字列も変換できます。以下の例では16進数の文字列「1A」を10進数の整数に変換しています。

public class Main { public static void main(String[] args) { int hexNumber = Integer.parseInt("1A", 16); System.out.println(hexNumber); } }

出力結果

26

この例では、16進数で書かれた文字列を10進数の数値に変換して画面に出力しています。まず、Integer.parseIntメソッドの第1引数に文字列の「1A」を渡し、第2引数に基数となる16を指定します。これにより、16進数の「1A」が10進数の26に変換され、変数hexNumberに代入されて出力されます。

最後に、変換できない文字列を渡した場合の動作も確認しておきましょう。数値として解釈できない文字列を渡すとNumberFormatExceptionが発生します。

public class Main { public static void main(String[] args) { try { int invalid = Integer.parseInt("hello"); System.out.println(invalid); } catch (NumberFormatException e) { System.out.println("変換できません: " + e.getMessage()); } } }

出力結果

変換できません: For input string: "hello"

この例では、数値に変換できない文字列が渡されたときにエラーをキャッチして記述したメッセージを出力しています。tryブロックの中で「hello」という文字を数値に変換しようとしますが、数値ではないためNumberFormatExceptionエラーが発生します。プログラムが途中で止まらないよう、catchブロックでエラーを受け取り、安全に例外処理を行う仕組みです。

Integer.parseIntは文字列が正しく数値を表しているかどうかに依存するため、例外処理を合わせて実装することが推奨されます。

実用例

ここからは、Integer.parseIntを使った実践的なプログラムの例を紹介します。基本的な変換から、エラー処理、基数の指定、コマンドライン引数の活用まで、開発でよく使われる記述パターンをまとめています。

各プログラムはそのまま実行できる形にしています。手元で動かしながら、出力結果と照らし合わせて確認してみてください。

文字列の数値をint型に変換する基本的な使い方

Integer.parseIntのもっとも基礎的な使い方です。文字列として定義した数値をint型に変換し、そのまま計算に使用しています。

public class Main { public static void main(String[] args) { String catAge = "5"; int age = Integer.parseInt(catAge); int humanAge = age * 7; System.out.println("ネコの年齢: " + age); System.out.println("人間換算の年齢: " + humanAge); } }

出力結果

ネコの年齢: 5
人間換算の年齢: 35

この例では、文字列として定義されたネコの年齢を数値に変換し、掛け算を行って結果を出力しています。

まず、String型の変数catAgeに代入された「"5"」をInteger.parseIntでint型の5に変換して変数ageに代入します。数値に変換されているため、「age * 7」という掛け算が可能になり、人間換算の年齢である35を正しく算出できます。

負の数を含む文字列を変換する

Integer.parseIntは先頭にマイナス記号が付いた文字列も正しく変換できます。負の数を扱う際の動作を確認してみましょう。

public class Main { public static void main(String[] args) { String temperature = "-15"; int temp = Integer.parseInt(temperature); System.out.println("気温: " + temp + "度"); System.out.println("絶対値: " + Math.abs(temp) + "度"); } }

出力結果

気温: -15度
絶対値: 15度

この例では、マイナスの符号がついた気温の文字列を負の整数に変換し、その値と絶対値を画面に出力しています。

Integer.parseIntに文字列の"-15"を渡すと、先頭のハイフンを負の符号として認識し、int型の-15に変換します。変数tempに数値として格納されるため、Math.absメソッドを使って絶対値の15を求める計算も行えます。

2進数・8進数・16進数の文字列を変換する

Integer.parseIntの第2引数に基数を指定することで、10進数以外の文字列を変換できます。2進数、8進数、16進数の変換例を見てみましょう。

public class Main { public static void main(String[] args) { int binary = Integer.parseInt("1010", 2); int octal = Integer.parseInt("17", 8); int hex = Integer.parseInt("FF", 16); System.out.println("2進数 1010 → " + binary); System.out.println("8進数 17 → " + octal); System.out.println("16進数 FF → " + hex); } }

出力結果

2進数 1010 → 10
8進数 17 → 15
16進数 FF → 255

この例では、さまざまな進数で表現された文字列をすべて10進数の数値に変換して画面に出力しています。

第2引数に「2」「8」「16」を指定することで、それぞれの文字列を2進数、8進数、16進数として解釈させます。変換された結果はすべて通常のint型として扱えるようになり、それぞれの10進数の値が表示されます。

不正な文字列に対して例外処理を行う

ユーザー入力など、確実に数値である保証がない文字列を変換する場合は、try-catch文で例外を捕捉する必要があります。

public class Main { public static void main(String[] args) { String[] inputs = {"42", "イヌ", "100"}; for (String input : inputs) { try { int value = Integer.parseInt(input); System.out.println(input + " → 変換成功: " + value); } catch (NumberFormatException e) { System.out.println(input + " → 変換失敗"); } } } }

出力結果

42 → 変換成功: 42
イヌ → 変換失敗
100 → 変換成功: 100

この例では、配列内の複数の文字列を順番に数値へ変換し、変換の成否を1件ずつ出力しています。

まず、for文で配列の要素を1つずつ取り出し、tryブロックの中でInteger.parseIntを実行します。「イヌ」のときは数値に変換できずエラーとなりますが、catchブロックが動作するためプログラムは止まらず、次の「100」の処理へと進みます。

文字列の配列を合計値に変換する

配列に格納されている複数の点数データを、Integer.parseIntで順番に数値に変換しながら合計点と平均点を計算します。

public class Main { public static void main(String[] args) { String[] scores = {"85", "92", "78", "90", "88"}; int total = 0; for (String score : scores) { total += Integer.parseInt(score); } System.out.println("合計点: " + total); System.out.println("平均点: " + (total / scores.length)); } }

出力結果

合計点: 433
平均点: 86

この例では、文字列の配列に入っている5つの点数データをすべて数値に変換し、合計点と平均点を計算して出力しています。拡張for文を使って配列から1つずつ点数の文字列を取り出し、Integer.parseIntで数値に変換しながら変数totalに足し合わせていきます。すべての加算が終わったあと、合計値を要素数で割って平均点を算出します。

入力値の範囲チェックと組み合わせて使う

Integer.parseIntで変換した値が、想定する範囲内に収まっているかを検証するパターンです。年齢の入力を例に、変換と範囲チェックを組み合わせます。

public class Main { public static void main(String[] args) { String input = "25"; try { int age = Integer.parseInt(input); if (age >= 0 && age <= 150) { System.out.println("入力された年齢: " + age); } else { System.out.println("範囲外の値です"); } } catch (NumberFormatException e) { System.out.println("数値を入力してください"); } } }

出力結果

入力された年齢: 25

この例では、文字列から変換した年齢の数値が、正しい範囲にあるかをチェックして結果を出力しています。

まず、Integer.parseIntで文字列の「"25"」を数値の25に変換します。その後、if文の条件式を使って「0以上かつ150以下」というルールを満たしているかを確認し、問題がない場合のみ入力された年齢を表示します。

まとめ

JavaのInteger.parseIntは、文字列を整数の数値に変換する重要なメソッドです。基本構文から実際の活用例まで解説しました。

Integer.parseIntが活躍する場面は次のようなケースです。

Integer.parseIntが活躍する場面

  • 画面の入力フォームから受け取った文字データを数値に変えて計算したいとき
  • ファイルから読み込んだ数字のテキストデータを集計したいとき
  • 16進数や2進数で表現された文字データを10進数の数値に変換したいとき

Integer.parseIntを用いる上で、押さえておきたいポイントを覚えておきましょう。

重要なポイント

  • 数値に変換できない文字が渡されるとエラーが発生する
  • プログラムの強制終了を防ぐために例外処理と組み合わせて使う
  • int型が扱える数値の範囲を超えた文字列は変換できない

初めてJavaを学ぶ方も、紹介したプログラムを実際に書いて、基本的な使い方を試してみてください。正しいエラー処理も含めて書き方をマスターし、実用的なプログラムを作成できるようになりましょう。

レベルを更に上げたい方はpaizaプログラミングスキルチェック

  1. paizaトップ
  2. リファレンス
  3. Javaのリファレンス記事一覧
  4. Java Integer.parseIntの使い方