Java の文字列を数値に変換する「Integer.parseInt()」「Double.parseDouble()」
新人
「Java で文字列を数値に変換する方法はありますか?」
先輩
「Java には Integer.parseInt() や Double.parseDouble() というメソッドがあって、それを使うと文字列を数値に変換できるよ。」
新人
「それを使うと、どんなことができるんですか?」
先輩
「例えば、ユーザーが入力した数値を計算に使うときや、ファイルやデータベースから取得した数値を処理するときに便利だよ。基本的な使い方を見てみよう!」
1. 文字列を数値に変換するとは?(基本的な説明)
プログラムでは、文字列(String)と数値(int や double)は異なるデータ型です。そのため、数値の計算を行うためには、文字列を数値に変換する必要があります。
文字列のままだと計算できない
public class StringAddition {
public static void main(String[] args) {
String num1 = "10";
String num2 = "20";
System.out.println(num1 + num2); // 文字列の結合になる
}
}
1020
この例では、"10" と "20" を足し算しようとしましたが、文字列が結合されてしまいました。
正しく計算するには、文字列を数値に変換する必要があります。そこで、Integer.parseInt() や Double.parseDouble() を使います。
2. Integer.parseInt() の使い方(整数に変換)
Integer.parseInt() は、文字列を整数(int)に変換するメソッドです。
Integer.parseInt() の基本的な使い方
public class ParseIntExample {
public static void main(String[] args) {
String strNumber = "123";
int number = Integer.parseInt(strNumber);
System.out.println("整数に変換: " + number);
}
}
整数に変換: 123
コードの解説
String strNumber = "123";… 文字列としての数値を用意Integer.parseInt(strNumber);… 文字列を整数に変換System.out.println(number);… 変換後の整数を出力
このように、Integer.parseInt() を使うと、文字列の「123」を整数の 123 に変換できます。
整数に変換した値を計算に使う
public class ParseIntCalculation {
public static void main(String[] args) {
String strNum1 = "15";
String strNum2 = "25";
int num1 = Integer.parseInt(strNum1);
int num2 = Integer.parseInt(strNum2);
int sum = num1 + num2;
System.out.println("足し算の結果: " + sum);
}
}
足し算の結果: 40
コードの解説
- 文字列の「15」と「25」を
Integer.parseInt()で整数に変換 - 変換した値を足し算して正しい結果を得る
文字列のままだと計算できませんが、数値に変換することで計算が可能になります。
数値に変換できない場合の注意点
もし、文字列が数値として正しくない場合、エラー(NumberFormatException)が発生します。
public class ParseIntError {
public static void main(String[] args) {
String strNumber = "abc"; // 数値ではない文字列
int number = Integer.parseInt(strNumber); // ここでエラー
System.out.println(number);
}
}
Exception in thread "main" java.lang.NumberFormatException: For input string: "abc"
このように、数値以外の文字列を変換しようとするとエラーになるので注意が必要です。エラーハンドリングについては後のセクションで説明します。
3. Double.parseDouble() の使い方(小数に変換)
整数ではなく、小数(浮動小数点数)を扱いたい場合は Double.parseDouble() を使います。
Double.parseDouble() の基本的な使い方
public class ParseDoubleExample {
public static void main(String[] args) {
String strNumber = "12.34";
double number = Double.parseDouble(strNumber);
System.out.println("小数に変換: " + number);
}
}
小数に変換: 12.34
コードの解説
String strNumber = "12.34";… 文字列としての小数を用意Double.parseDouble(strNumber);… 文字列を小数に変換System.out.println(number);… 変換後の小数を出力
このように Double.parseDouble() を使うことで、小数の計算が可能になります。
4. 数値に変換できない文字列を扱うには?(エラーハンドリング)
数値に変換できない文字列を parseInt() や parseDouble() に渡すと、プログラムがエラーで停止してしまいます。
エラーハンドリング(例外処理)を行う
public class ParseWithTryCatch {
public static void main(String[] args) {
String strNumber = "abc"; // 数値ではない文字列
try {
int number = Integer.parseInt(strNumber);
System.out.println("変換成功: " + number);
} catch (NumberFormatException e) {
System.out.println("数値に変換できません: " + strNumber);
}
}
}
数値に変換できません: abc
コードの解説
try { ... } catch (NumberFormatException e) { ... }を使ってエラーを回避- エラーが発生した場合、例外処理を実行しプログラムが止まらないようにする
このように try-catch を使えば、安全に数値変換を行うことができます。
5. 変換後の数値を使って計算をする方法
数値に変換したデータを使って、実際に計算を行う例を見てみましょう。
小数の足し算をする
public class ParseDoubleCalculation {
public static void main(String[] args) {
String strNum1 = "10.5";
String strNum2 = "5.3";
double num1 = Double.parseDouble(strNum1);
double num2 = Double.parseDouble(strNum2);
double sum = num1 + num2;
System.out.println("足し算の結果: " + sum);
}
}
足し算の結果: 15.8
コードの解説
- 文字列の "10.5" と "5.3" を
Double.parseDouble()で小数に変換 - 変換後の値を足し算して正しい結果を得る
このように、変換した数値を使って計算を行うことで、実際のプログラムに活用できます。
6. ユーザー入力の数値を変換する(応用例)
プログラムでは、ユーザーから入力を受け取り、それを数値に変換することがよくあります。例えば、計算アプリなどで、ユーザーが入力した数値を足し算や掛け算に使う場合です。
文字列の入力を整数に変換する
import java.util.Scanner;
public class UserInputParse {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("整数を入力してください: ");
String input = scanner.nextLine();
int number = Integer.parseInt(input);
System.out.println("入力された整数: " + number);
scanner.close();
}
}
整数を入力してください: 42
入力された整数: 42
コードの解説
Scannerを使ってユーザーから文字列を入力Integer.parseInt()で文字列を整数に変換- 変換した整数を表示
このように、Integer.parseInt() を使えば、ユーザーが入力したデータを整数に変換できます。
7. 文字列を数値に変換する際の注意点(例外処理)
ユーザーが誤った形式の文字列を入力すると、プログラムがエラーで止まってしまいます。そのため、例外処理を行い、エラーを防ぐ必要があります。
エラーハンドリング(例外処理)を使う
import java.util.Scanner;
public class SafeUserInput {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("整数を入力してください: ");
String input = scanner.nextLine();
try {
int number = Integer.parseInt(input);
System.out.println("入力された整数: " + number);
} catch (NumberFormatException e) {
System.out.println("エラー: 数値を入力してください");
}
scanner.close();
}
}
整数を入力してください: abc
エラー: 数値を入力してください
コードの解説
try { ... } catch (NumberFormatException e) { ... }を使ってエラーを回避- ユーザーが誤って文字を入力した場合、エラーメッセージを表示
- プログラムがエラーで停止しないようにする
このように、エラーハンドリングを使うことで、予期しないエラーを防ぐことができます。
8. 練習問題:「Integer.parseInt()」と「Double.parseDouble()」を使ったプログラムを作ろう
最後に、Integer.parseInt() と Double.parseDouble() を使って、ユーザーが入力した数値を使った計算プログラムを作ってみましょう。
練習問題: ユーザーの入力を数値に変換して合計を求める
import java.util.Scanner;
public class UserInputSum {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("最初の数値を入力してください: ");
String input1 = scanner.nextLine();
System.out.print("次の数値を入力してください: ");
String input2 = scanner.nextLine();
try {
double num1 = Double.parseDouble(input1);
double num2 = Double.parseDouble(input2);
double sum = num1 + num2;
System.out.println("合計: " + sum);
} catch (NumberFormatException e) {
System.out.println("エラー: 数値を入力してください");
}
scanner.close();
}
}
最初の数値を入力してください: 12.5
次の数値を入力してください: 7.3
合計: 19.8
コードの解説
- ユーザーから2つの数値を入力
Double.parseDouble()を使って文字列を数値に変換- 変換後の数値を足し算し、結果を表示
- 入力が数値でない場合はエラーメッセージを表示
このように、ユーザーの入力を数値に変換して計算することで、実用的なプログラムを作ることができます。
まとめ
本記事では、Java において文字列を数値に変換する方法として Integer.parseInt() や Double.parseDouble() を活用する手法を、初心者にも分かりやすく丁寧に解説しました。文字列と数値は異なるデータ型であるため、計算処理に使用するには明示的な変換が不可欠です。
まず、Integer.parseInt() によって文字列から整数への変換が可能になり、足し算や掛け算などの算術演算に活用できることを学びました。次に、Double.parseDouble() を用いることで小数点を含む文字列の変換ができるため、実際の金額や時間などの細かな数値を扱うアプリケーションにも対応可能です。
また、ユーザーの入力や外部データを受け取る場合には、数値として解釈できない文字列が渡される可能性があるため、例外処理(try-catch) を通じた安全な変換方法も重要です。変換できない文字列を扱う際に発生する NumberFormatException をキャッチし、エラーを回避する方法もコードとともに紹介しました。
実際の開発では、Webアプリケーションや業務システム、入力フォームなどで文字列データが送られてくる場面が多くあります。今回紹介した parseInt() と parseDouble() を活用することで、文字列入力を正しく数値に変換し、演算処理やロジックへの適用が可能になります。
応用例:文字列から変換した数値で条件分岐
public class ScoreChecker {
public static void main(String[] args) {
String strScore = "85";
try {
int score = Integer.parseInt(strScore);
if (score >= 90) {
System.out.println("評価: 優秀");
} else if (score >= 70) {
System.out.println("評価: 良好");
} else {
System.out.println("評価: 要努力");
}
} catch (NumberFormatException e) {
System.out.println("エラー: 数値を入力してください");
}
}
}
評価: 良好
この例では、ユーザーが入力した文字列を Integer.parseInt() で変換し、数値に応じた評価を表示しています。文字列を数値に変換できるようになると、ロジックの条件分岐 や データ処理 が柔軟に行えるようになります。
新人
「今回の記事で、Integer.parseInt() と Double.parseDouble() の使い方がすごくよく分かりました!文字列をそのまま計算に使えない理由も納得です。」
先輩
「そうだね。文字列と数値は扱い方が全然違うから、変換が必要なんだよ。さらに、例外処理も覚えておけば、安全なプログラムが作れるようになるよ。」
新人
「try-catch を使うと、間違った入力にも対応できるっていうのが便利ですね!入力フォームとかユーザーの操作が関わる場面では特に大事だと感じました。」
先輩
「まさにその通り。現実のアプリケーションでは、あらゆる入力の可能性に備えてコードを書く必要があるからね。今回学んだ parseInt() や parseDouble() の知識は、Java の基本中の基本だから、しっかり覚えておこう!」
新人
「はい!これからは文字列をちゃんと数値に変換して、エラー処理も忘れずに組み込みます!」