So konvertieren Sie einen String in int in Java

Die einzige Voraussetzung zum Konvertieren einer Zeichenkette in eine Ganzzahl in Java ist, dass sie nur Ziffern enthalten darf, die Sie in eine Variable vom Typ int einfügen möchten, mit Ausnahme des ersten Zeichens, das einen negativen "-" oder einen positiven "+"-Wert angibt. Zum Beispiel ist das Ergebnis von "-123" die Zahl -123.
Viele werden umgewandelt, aber Java lässt es nicht zu.

kann nicht von String in int umgewandelt werden

Die Ausnahme Cannot cast from String to int bedeutet, dass der Java-Compiler nicht zulässt, dass ein String in int umgewandelt wird. Dies ist sinnvoll, da die beiden nicht vom gleichen Typ sind.

Das Integer

Das Integer-Objekt enthält ein einzelnes Attribut vom Typ int. Diese Klasse enthält mehrere Methoden zum Konvertieren eines int in einen String und eines Strings in einen int.

1) Durch Instanziieren eines neuen Integer(String s)

Dieser Konstruktor weist ein neues Objekt zu, das eine ganze Zahl enthält:

public class Cast {

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

12

2) mit der Methode Integer.valueOf(String s)

Die Methode valueOf() gibt eine neue Instanz von java.lang.Integer der den Wert enthält, der im Argument 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) mit Integer.parseInt(String s)

Die parseInt() gibt einen ganzzahligen Wert zurück, so als ob das Argument im 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 wird aufgerufen, wenn das übergebene Argument nicht das richtige Format hat. Die Ursachen sind:
  • Das übergebene Argument enthält mindestens ein nicht-numerisches Zeichen.
  • Die Zahl ist nicht dezimal wie die Gleitkommazahl 12.4f.

Verbesserung unserer Prozedur

Um ein Beenden des Programms zu vermeiden, Wir geben einen Standardwert zurück, wenn das Format nicht eingehalten wird.

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) {
try {
return Integer.parseInt(value);
} catch (NumberFormatException e) {
return _default;
}
}
}
Ausgabe:

0
Für den Fall, dass die Variable nbs nicht numerisch ist, wird die Funktion stringToInt() standardmäßig 0 zurück.

References:
Oracle.com -  Die Integer
JRJC-Convert string in int