Java では、データの型変換が必要なシナリオによく遭遇します。String 型データを Int 型に変換することは、比較的一般的なシナリオです。主な変換方法は 2 つあります:
1. Integer.parseInt(String) メソッドを使用します
2. Integer.valueOf(String) メソッドを使用します
具体的なデモは次のとおりです:
public void convert() { // 1.使用Integer.parseInt(String) String str1 = "31"; Integer num1 = Integer.parseInt(str1); System.out.print("字符串31转换为数字:"); System.out.println(num1); // 2.使用Integer.valueOf(String) String str2 = "32"; Integer num2 = Integer.valueOf(str2); System.out.print("字符串32转换为数字:"); System.out.println(num2); }
実行結果:
それが確認できます。実行結果によると、両方のメソッドで文字列から整数への変換を完了できます。
ただし、これら 2 つの方法を使用するには前提条件があることに注意してください。つまり、変換される文字列の内容は純粋な数値でなければなりません 。
上記のデモで変換対象となる文字列が、すべて「31」や「32」などの純粋な数字で構成された文字列であることは難しくありません。変換された場合、プログラムは例外をスローします。
以下のデモに示すように、文字列に小文字の英字を追加し、コード セグメントを try-catch ステートメントで囲み、発生する可能性のある例外をキャッチします。 (文字を含む文字列を整数に変換するとデジタル形式変換例外が発生することがわかっているため、NumberFormatException をキャッチすることにしました)
public void convert() { // 1.Integer.parseInt(String) try { String str1 = "31a"; Integer num1 = Integer.parseInt(str1); System.out.print("字符串31a转换为数字:"); System.out.println(num1); } catch (NumberFormatException e) { System.out.println("Integer.parseInt(String)方法执行异常"); e.printStackTrace(); } // 1.Integer.valueOf(String) try { String str2 = "32b"; Integer num2 = Integer.valueOf(str2); System.out.print("字符串32b转换为数字:"); System.out.println(num2); } catch (NumberFormatException e) { System.out.println("Integer.valueOf(String)方法执行异常"); e.printStackTrace(); } }
実行結果から、このコードは Integer であることがわかります。 .parseInt(String ) メソッドと Integer.valueOf(String) の位置により NumberFormatException が発生しました。理由は、 変換された文字列に英文字が含まれており、整数型 に変換できないためです。
System.nanoTime() を使用して、2 つのメソッドの実行時間の差を確認できます
public static void convert() { // 1.Integer.parseInt(String) String str1 = "321"; long before1 = System.nanoTime(); Integer.parseInt(str1); long interval1 = System.nanoTime() - before1; System.out.print("Integer.parseInt(String)的执行时长(纳秒):"); System.out.println(interval1); // 1.Integer.valueOf(String) String str2 = "332"; long before2 = System.nanoTime(); Integer.valueOf(str2); long interval2 = System.nanoTime() - before2; System.out.print("Integer.valueOf(String)的执行时长(纳秒):"); System.out.println(interval2); }
このうち、interval1 とinterval2 の値は、それぞれ 2 つのメソッドの実行前後のシステム時間の差を指します。単位はナノ秒です。複数回実行すると、 Integer.valueOf(String) メソッドは、Integer.parseInt(String) メソッドよりも短いです。
以上がJavaで文字列を整数に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。