Java の文字列を数値に変換する方法(Integer.parseIntなど)
新人
「Javaで入力した文字列を計算に使いたいんですけど、どうやって数値に変換するんですか?」
先輩
「Javaでは、文字列を数値に変換する方法としてInteger.parseIntやDouble.parseDoubleといったメソッドがあります。」
新人
「なるほど。でも文字列ってただの文字の集まりですよね。どうやって数値に変換できるんですか?」
先輩
「文字列が数値として正しい形式になっていれば、Javaはそれを対応する数値型に変換できます。少し例を見てみましょう。」
1. Javaの文字列と数値の基本
Javaでは文字列を表すクラスはStringで、数値を表す型にはintやdoubleがあります。文字列は数字の文字でも文字列として扱われるため、そのままでは計算に使えません。例えば「123」という文字列は、計算に使うときは数値の123に変換する必要があります。
public class StringToNumberExample {
public static void main(String[] args) {
String str = "123";
int num = Integer.parseInt(str);
System.out.println(num + 1); // 124
}
}
124
このようにInteger.parseIntを使うと、文字列「123」が整数の123に変換され、計算に利用できます。
2. なぜ文字列を数値に変換する必要があるのか
文字列から数値に変換する主な理由は、計算や条件判定に使うためです。例えばフォームからユーザーが入力した値はすべて文字列として受け取られます。そのままでは計算できませんが、Integer.parseIntやDouble.parseDoubleを使えば数値として利用できます。
また、文字列を数値に変換することで、ループや条件分岐などで正しい判定を行うことも可能になります。特に入力値を計算に使う場合は、必ず数値型に変換して処理することが必要です。
public class FormInputExample {
public static void main(String[] args) {
String input = "45";
int value = Integer.parseInt(input);
if(value > 40) {
System.out.println("40より大きい数字です");
}
}
}
40より大きい数字です
このように変換することで、入力値を正しく評価して条件分岐や計算に利用できるようになります。数値として扱わなければ、計算や比較の結果が正しくならないため、文字列を数値に変換することはプログラムの基本操作の一つです。
3. Integer.parseIntメソッドの使い方
文字列を整数に変換する最も基本的な方法はInteger.parseIntです。このメソッドは文字列が整数として正しい形式である場合、その文字列をint型に変換します。例えば「2025」という文字列を整数として扱いたい場合に使えます。
public class ParseIntExample {
public static void main(String[] args) {
String strNumber = "2025";
int number = Integer.parseInt(strNumber);
System.out.println(number * 2); // 4050
}
}
4050
このように、Integer.parseIntを使うと簡単に文字列を整数に変換でき、計算や条件判定に活用できます。文字列が整数でない場合にはエラーが発生するため注意が必要です。
4. 他の数値型への変換(Double.parseDouble, Long.parseLong など)
整数だけでなく、小数や大きな数値に変換する場合もあります。小数に変換したい場合はDouble.parseDoubleを、大きな整数に変換したい場合はLong.parseLongを使います。これらのメソッドも文字列が数値として正しい形式である必要があります。
public class ParseOtherNumbersExample {
public static void main(String[] args) {
String doubleStr = "12.34";
String longStr = "1234567890";
double d = Double.parseDouble(doubleStr);
long l = Long.parseLong(longStr);
System.out.println(d + 1.0); // 13.34
System.out.println(l + 10); // 1234567900
}
}
13.34
1234567900
このように文字列を適切な数値型に変換することで、整数だけでなく小数や長い整数も扱えるようになります。入力値の形式に応じて適切な変換メソッドを選ぶことが重要です。
5. 文字列変換時の例外とその対処(NumberFormatException)
文字列を数値に変換する際に、数字以外の文字が含まれているとNumberFormatExceptionという例外が発生します。この例外は、入力が数値として正しくない場合に発生するもので、プログラムがクラッシュするのを防ぐために必ず対処する必要があります。
public class ExceptionHandlingExample {
public static void main(String[] args) {
String input = "abc";
try {
int number = Integer.parseInt(input);
System.out.println(number);
} catch (NumberFormatException e) {
System.out.println("数値に変換できません: " + input);
}
}
}
数値に変換できません: abc
このようにtry-catchを使うと、変換できない文字列が入力された場合でもプログラムを安全に処理できます。フォームやユーザー入力では、常に例外処理を加えることがベストプラクティスです。これにより、ユーザーが意図しない文字を入力しても、アプリケーションが落ちずに適切にエラーを通知できます。
さらに、複数の入力を連続して処理する場合や、計算に使う値が必ず整数である必要がある場合も、NumberFormatExceptionを考慮した安全なプログラム設計が求められます。初心者でも例外処理の仕組みを理解しておくことで、より安定したJavaアプリケーションを作ることが可能です。
6. 文字列を数値に変換する実践的な例(フォーム入力値の処理など)
Javaでユーザーが入力した値は文字列として扱われます。例えば、年齢や商品の数量を入力する場合、文字列のままでは計算や条件判定に使えません。ここでInteger.parseIntやDouble.parseDoubleを使うことで、数値に変換し計算に活用できます。
public class FormInputProcessing {
public static void main(String[] args) {
String ageInput = "20";
String priceInput = "1500.5";
try {
int age = Integer.parseInt(ageInput);
double price = Double.parseDouble(priceInput);
if(age >= 18) {
double total = price * 1.1; // 消費税計算
System.out.println("合計金額: " + total);
} else {
System.out.println("未成年は購入できません");
}
} catch (NumberFormatException e) {
System.out.println("入力が不正です: " + e.getMessage());
}
}
}
合計金額: 1650.55
このように文字列を数値に変換することで、入力値を計算や判定に正しく使用でき、実際のアプリケーションでも役立ちます。特にフォーム入力や外部データの処理では必須の操作です。
7. 文字列変換時に注意すべきポイント
文字列を数値に変換する際は、入力が正しい形式かどうかを常に確認する必要があります。不正な文字列を変換しようとするとNumberFormatExceptionが発生し、プログラムが停止してしまいます。
また、整数型に変換する場合は小数点や空白文字に注意する必要があります。小数を整数に変換しようとするとエラーになります。逆に小数を扱う場合はDouble.parseDoubleなど適切な型を使うことが重要です。
さらに、大きな数値や特殊な文字列を扱う場合、Long.parseLongやBigDecimalを活用することで精度を保ちつつ安全に変換できます。常に例外処理を組み込み、安全なプログラムを設計することが初心者でも大切です。
public class InputValidationExample {
public static void main(String[] args) {
String[] inputs = {"100", "abc", "25.5"};
for(String input : inputs) {
try {
int value = Integer.parseInt(input);
System.out.println("整数値: " + value);
} catch (NumberFormatException e) {
System.out.println("変換できません: " + input);
}
}
}
}
整数値: 100
変換できません: abc
変換できません: 25.5
この例のように、複数の入力を安全に処理するために、例外処理を必ず組み込みます。これにより、入力値の形式に関わらず、プログラムが安定して動作し、ユーザーに正しいフィードバックを返すことができます。初心者でも、この安全な変換処理を覚えておくと、より信頼性の高いJavaプログラムを作成できます。