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

Javaで文字列を整数に変換するための唯一の要件は、負の「-」または正の「+」値を示す最初の文字を除いて、int型の変数に入力する数字のみが含まれている必要があることです。たとえば、"-123" の結果は数値 -123.
Many はキャストされますが、Java では許可されません.

文字列からintへのキャストはできません

例外Cannot キャストを String から intは、Java コンパイラが String から int へのキャストを許可していないことを意味します。この 2 つは同じ型ではないため、これは理にかなっています。

Integer オブジェクト

Integer オブジェクトには int 型の属性が 1 つ含まれています。このクラスには、int を String に、String を int.

1) をインスタンス化することで、新しい Integer(String s)

このコンストラクタは、整数を含む新しいオブジェクトを割り当てます:

public class キャスト {

public static voidmain(文字列[] args) {
文字列 nbs = "12";
int nb;
nb = new Integer(nbs);
System.out.println(nb);
}
}
Output:

12

2) と Integer.valueOf(String s)

valueOf()java.lang.Integer 引数 String.

public class Cast {

public static void main(String[] args) {
String nbs = "12";
int nb;
nb = new Integer(nbs);
System.out.println(nb);
}
}
Output:

12

3) と Integer.parseInt(String s)

parseInt() は、引数が valueOf(String s).

public class Cast {

public static void main(String[] args) {
String nbs = "12";
int nb;
nb = Integer.parseInt(nbs);
System.out.println(nb);
}
}
Output:

12

Exception NumberFormatException thrown

NumberFormatException は、渡された引数の形式が正しくない場合に呼び出されます。原因は次のとおりです:
  • 渡された引数に数字以外の文字が少なくとも 1 つ含まれています。
  • 数値が浮動小数点数のように 10 進数ではありません 12.4f.

手順の改善

プログラムが終了しないようにするには、 フォーマットが尊重されない場合はデフォルト値を返します.

public class Cast {

public static void main(String[] args) {
String nbs = "12.4s";
int nb;
System.out.println(stringToInt(nbs,0));
}

public static int stringToInt(String value, int _default) {
{
return Integer.parseInt(value);
} catch (NumberFormatException e) {
return _default;
}
}
}
出力:

0
変数 nbs が数値でない場合、関数 stringToInt() はデフォルトで 0 を返します。

References:
Oracle.com - Integer
JRJC-文字列をint