JavaでString型からint型への変換方法
JavaでString型をint型に変換する場合、主にInteger.parseInt()
メソッドとInteger.valueOf()
メソッドを使用します。これらのメソッドは文字列を整数型に変換する際に広く利用されています。parseInt()
メソッドはプリミティブ型のintを返すのに対し、valueOf()
メソッドはIntegerオブジェクトを返すという違いがあります。
Integer.parseInt()
メソッドは文字列を直接intに変換するため、パフォーマンスが重視される場面に適しています。一方、Integer.valueOf()
メソッドはIntegerオブジェクトを返すため、オブジェクト指向プログラミングの文脈で使用されることが多いです。
// StringからIntへの変換サンプルコード
public class StringToIntConversion {
public static void main(String[] args) {
String strNumber = "123";
// Integer.parseIntを使用
int num1 = Integer.parseInt(strNumber);
// Integer.valueOfを使用
Integer num2 = Integer.valueOf(strNumber);
System.out.println("parseInt結果: " + num1);
System.out.println("valueOf結果: " + num2);
}
}
実行結果
parseInt結果: 123
valueOf結果: 123
文字列が数値として解析できない場合、NumberFormatExceptionが発生する点に注意する必要があるため、適切なエラーハンドリングを実装することをお勧めします。また、JavaのAutoboxingとUnboxingの機能により、Integerオブジェクトとプリミティブintの変換は自動的に行われるため、状況に応じて適切なメソッドを選択できます。
Javaでint型からString型へ変換する方法
JavaでintをStringに変換する場合、String.valueOf()
メソッドやInteger.toString()
メソッドが一般的に使用されます。これらのメソッドは整数値を文字列表現に変換する際に、簡単かつ効率的に利用できます。また、文字列連結演算子(+)を使用する方法もありますが、パフォーマンスの観点から多用は推奨されません。
String.valueOf()
メソッドは、nullを含むあらゆるオブジェクトを文字列に変換できる汎用的なメソッドです。一方、Integer.toString()
メソッドは整数型に特化しており、より直接的な変換を行います。どちらのメソッドも同等の結果を生成しますが、コードの文脈に応じて適切な方法を選択することが重要です。
// intからStringへの変換サンプルコード
public class IntToStringConversion {
public static void main(String[] args) {
int number = 456;
// String.valueOfを使用
String str1 = String.valueOf(number);
// Integer.toStringを使用
String str2 = Integer.toString(number);
System.out.println("String.valueOf結果: " + str1);
System.out.println("Integer.toString結果: " + str2);
}
}
実行結果
String.valueOf結果: 456
Integer.toString結果: 456
int型からString型への変換は、例外が発生することはなく安全に行えます。大量の変換を行う場合は、StringBuilder等を使用するとパフォーマンスが向上します。文字列連結は内部的にStringBuilderを使用しますが、明示的にStringBuilderを使用する方が効率的な場合が多いです。
Stringからintに変換する際の例外処理と基数指定
JavaでStringをintに変換する際、入力文字列が有効な整数を表していない場合は、NumberFormatException
が発生するため、変換処理を行う際には適切な例外処理を実装することが重要です。try-catchブロックを使用することによって、エラーを適切に処理しプログラムの堅牢性を高めることができます。
また、Integer.parseInt()
メソッドやInteger.valueOf()
メソッドは、オーバーロードされたバージョンとして基数(radix)を指定するパラメータを受け取ることができます。受け取れることによって2進数や16進数など、10進数以外の数値表現を持つ文字列も適切に変換することが可能になります。基数を指定することで、様々な数値表現に対応できる柔軟性の高いコードの作成が可能です。
// String-int変換の例外処理と基数指定サンプル
public class StringIntConversionAdvanced {
public static void main(String[] args) {
String[] inputs = {"123", "ABC", "1010", "FF"};
for (String input : inputs) {
// 10進数変換
try {
int decimal = Integer.parseInt(input);
System.out.println(input + " (10進数): " + decimal);
} catch (NumberFormatException e) {
System.out.println(input + ": 10進数として変換できません");
}
// 2進数変換
try {
int binary = Integer.parseInt(input, 2);
System.out.println(input + " (2進数): " + binary);
} catch (NumberFormatException e) {
System.out.println(input + ": 2進数として変換できません");
}
// 16進数変換
try {
int hex = Integer.parseInt(input, 16);
System.out.println(input + " (16進数): " + hex);
} catch (NumberFormatException e) {
System.out.println(input + ": 16進数として変換できません");
}
System.out.println();
}
}
}
実行結果
123 (10進数): 123
123: 2進数として変換できません
123 (16進数): 291
ABC: 10進数として変換できません
ABC: 2進数として変換できません
ABC (16進数): 2748
1010 (10進数): 1010
1010 (2進数): 10
1010 (16進数): 4112
FF: 10進数として変換できません
FF: 2進数として変換できません
FF (16進数): 255
基数を指定する際は、その基数で表現可能な文字だけを含む文字列を渡す必要があります。例えば、2進数の場合は「0」と「1」のみ、16進数の場合は「0〜9」と「A〜F」(大文字小文字を区別しない)のみが有効です。
実務では、ユーザー入力からの変換や外部データの処理など、String型とint型の相互変換は頻繁に発生します。適切な変換メソッドと例外処理を選択することで、安全で効率的なJavaプログラムを作成することが出来るでしょう。
※上記コンテンツの内容やソースコードはAIで確認・デバッグしておりますが、間違いやエラー、脆弱性などがある場合は、コメントよりご報告いただけますと幸いです。
ITやプログラミングに関するコラム
- IT研修で使える助成金まとめ!必要性や活用するメリット・デメリットを徹底解説
- 【Python】引数に型指定をしてコーディングする方法
- 【Python】replaceメソッドで正規表現を使う方法
- 【Python】class変数の基本とインスタンス変数との違いを解説
- 【C#】stringからintに変換する方法