Java で文字列を int に変換する

Java で文字列を int に変換する

Java では、文字列を操作するときに、文字列として表現された数値を整数型に変換する必要がある場合があります。通常、これを行うのは、文字列に対して幅広く柔軟な一連の操作を実行できるためです。 Java で文字列を整数に変換するために一般的に使用されるメソッドは次のとおりです。 parseInt ()の 文字列クラス

この記事では、Java で String を int に変換する方法を説明します。

Java文字列からIntへ

Java文字列をintに変換するプログラム

parseInt() メソッドの動作に慣れるために、すぐに例を見てみましょう。

ジャワ




// Java program to demonstrate working parseInt()> // Where No NumberFormatException is Thrown> // Main class> public> class> GFG {> > // Main driver method> > public> static> void> main(String args[])> > {> > // Custom wide-varied inputs to illustrate> > // usage of valueOf() method> > int> decimalExample = Integer.parseInt(> '20'> );> > int> signedPositiveExample = Integer.parseInt(> '+20'> );> > int> signedNegativeExample = Integer.parseInt(> '-20'> );> > int> radixExample = Integer.parseInt(> '20'> ,> 16> );> > int> stringExample = Integer.parseInt(> 'geeks'> ,> 29> );> > // Print commands on console> > System.out.println(decimalExample);> > System.out.println(signedPositiveExample);> > System.out.println(signedNegativeExample);> > System.out.println(radixExample);> > System.out.println(stringExample);> > }> }>

出力

20 20 -20 32 11670324 

JavaのparseInt()メソッド

この方法には 2 つのバリエーションがあります。

  1. parseInt(文字列): この関数は、文字列引数を符号付き 10 進整数として解析します。
  2. parseInt(文字列 s, int radix): この関数は、文字列引数を 2 番目の引数で指定された基数の符号付き整数として解析します。

parseIntの構文

public static int   parseInt(String str);   public static int   parseInt(String str, int radix); 

パラメーター

  • 文字数:S 整数に変換する必要がある文字列。
  • 基数: 文字列の解析中に使用されます。

戻り値の型

  • どちらのメソッドも、文字列を同等の整数に変換します。唯一の違いはパラメータの基数です。最初の方法は、基数 = 10 (10 進数) で考えることができます。

スローされた例外

  • NumberFormatException 次のいずれかの状況が発生した場合、このメソッドによってスローされます。

両方のバリエーションに関連する重要なポイントを覚えておいてください。

  1. 文字列は null または長さ 0 にすることができます
  2. 文字列で表される値は int 型の値ではありません
  3. 特に、関数の parseInt(String s, int radix) バリアントの場合:
    • 2 番目の引数の基数が Character.MIN_RADIX より小さいか、Character.MAX_RADIX より大きいかのいずれかです
    • 文字列のどの文字も、指定された基数の数字ではありません。ただし、文字列が長さ1より長い
  4. String の先頭にゼロがある場合、parseInt() メソッドはそれらを無視します。

の事例 parseInt() メソッド

ランダムなコード スニペットを取り出して、図をさらによく理解してみましょう。

ケース 1: parseInt(20, 16)

32 を返します、(2)*16^1 + (0)*16^0 = 32

ケース 2: parseInt(2147483648, 10)

NumberFormatException をスローします

ケース 3: parseInt(99, 8)

NumberFormatException をスローします
理由: 9 は 8 進数体系の数字として使用できません

ケース 4: parseInt(オタク、28)

NumberFormatException をスローします

ケース 5: parseInt(オタク、29)

11670324 を返します、 理由: 基数 29 の数値体系には、0 ~ 9 の数字とそれに続く文字 a、b、c… 最大 s を含めることができます。

ケース 6: parseInt(geeksforgeeks, 29)

NumberFormatException をスローします。 理由: 結果は整数ではありません。

parseInt() メソッドの数値形式の例外

以下に示す parseInt() メソッドによって発生する例外:

ジャワ




// Java Program to Demonstrate Working of parseInt() Method> // Where NumberFormatException is Thrown> // Main class> public> class> GFG {> > // Main driver method> > public> static> void> main(String args[])> > {> > // NumberFormatException> > String invalidArguments => ''> ;> > > // invalidArguments Error empty string> > // passed> > int> emptyString> > = Integer.parseInt(invalidArguments);> > > // The Converted Intger is out of bound> > // Too large to be called Integer> > int> outOfRangeOfInteger> > = Integer.parseInt(> 'geeksforgeeks'> ,> 29> );> > > // Domain Number System> > int> domainOfNumberSystem> > = Integer.parseInt(> 'geeks'> ,> 28> );> > // Print commands on console> > System.out.println(emptyString);> > System.out.println(outOfRangeOfInteger);> > System.out.println(domainOfNumberSystem);> > }> }>

出力

同様に、文字列を他のプリミティブ データ型に変換できます。

  1. parseLong(): 文字列を Long に解析します
  2. parseDouble(): 文字列を整数に変換したい場合は、文字列を double に解析します。 parseInt() を使用しない場合 、使用できます 値の() 方法 。 parseInt() に似た 2 つのバリアントもあります。
  3. parseInt() と valueOf() の違い: parseInt() は文字列を解析し、プリミティブ整数型を返します。ただし、valueOf() は整数オブジェクトを返します。

注記: valueOf() は内部で parseInt() を使用して整数に変換します。

文字列を整数に変換するための別のアプローチ

Java の parseInt() メソッドとは別に、文字列を整数に変換する別のメソッドがあります。以下は valueOf() メソッドの実装です。

valueOf() メソッド

Integer.valueOf() メソッドは、String を Integer オブジェクトに変換します。例を挙げてこれを理解しましょう。

上記のメソッドの実装を以下に示します。

ジャワ




// Java Program to Demonstrate> // Working of valueOf() Method> // Main class> public> class> GFG {> > // Main driver method> > public> static> void> main(String args[])> > {> > // Custom wide-varied inputs to illustrate> > // usage of valueOf() method> > int> decimalExample = Integer.valueOf(> '20'> );> > int> signedPositiveExample = Integer.valueOf(> '+20'> );> > int> signedNegativeExample = Integer.valueOf(> '-20'> );> > int> radixExample = Integer.valueOf(> '20'> ,> 16> );> > int> stringExample = Integer.valueOf(> 'geeks'> ,> 29> );> > // Print statements> > System.out.println(decimalExample);> > System.out.println(signedPositiveExample);> > System.out.println(signedNegativeExample);> > System.out.println(radixExample);> > System.out.println(stringExample);> > }> }>

出力

20 20 -20 32 11670324