Als je in Java een string naar int wilt con­ver­te­ren, heb je twee een­vou­di­ge opties: parseInt() en valueOf(). Beide opties werken echter alleen als de string uit­slui­tend gehele getallen bevat en het waar­de­be­reik van het int-ge­ge­vens­ty­pe niet over­schrijdt.

Wat is een string-naar-int-conversie in Java?

Java-strings zijn aan­een­scha­ke­lin­gen die tekens, cijfers en speciale tekens kunnen bevatten. In de pro­gram­meer­taal Java kunnen cijfers in de vorm van gehele getallen worden op­ge­sla­gen als een int. Als u een string hebt die alleen gehele getallen bevat, kunt u deze con­ver­te­ren naar de Java-pri­mi­tie­ve int, wat staat voor integer. Hoewel er 5 ver­schil­len­de manieren zijn om een Java int naar een string te con­ver­te­ren, zijn er slechts 2 be­lang­rij­ke manieren om een Java-string naar een int te con­ver­te­ren. Dit zijn Integer parseInt() en Integer.valueOf(). Hieronder leggen we aan de hand van prak­ti­sche voor­beel­den uit hoe deze methoden werken.

Opmerking

Houd er rekening mee dat deze conversie alleen werkt als het be­tref­fen­de getal tussen -2147483648 en 2147483647 ligt. Grotere of kleinere getallen kunnen niet worden weer­ge­ge­ven met het ge­ge­vens­ty­pe int.

Hoe te gebruiken Integer.parseInt()

parseInt() is een statische methode die behoort tot de klasse Integer en die de numerieke waarde van het complexe ge­ge­vens­ty­pe string re­tour­neert in de vorm van het pri­mi­tie­ve ge­ge­vens­ty­pe int. De syntaxis ziet er als volgt uit:

static int parseInt(String s)
java

Laten we eens naar een voorbeeld kijken. Eerst ini­ti­a­li­se­ren we een string die alleen de waarde ‘7312’ bevat. Ver­vol­gens con­ver­te­ren we die Java-string naar een int met behulp van parseInt(), en ten slotte geven we het resultaat weer met behulp van het Java-commando System.out.println. De code ziet er als volgt uit:

public class Main {
	public static void main(String args[]) {
		String str = "7312";
		int number = Integer.parseInt(str);
		System.out.println("The numerical value of the string is: " + number);
	}
}
java

Dit is de uitvoer:

The numerical value of the string is: 7312
``
However, this only works if the string exclusively **contains whole numbers**. If it contains anything else, you’ll get an error message:
```java
public class Main {
	public static void main(String args[]) {
		String str = "The number is 7312";
		int number = Integer.parseInt(str);
		System.out.println("The number from the string is: " + number);
	}
}
java

Dit is de fout­mel­ding:

Exception in thread "main" java.lang.NumberFormatException: For input string: " The number is 7312"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67)
at java.base/java.lang.Integer.parseInt(Integer.java:661)
at java.base/java.lang.Integer.parseInt(Integer.java:777)
at Main.main(Main.java:4)
java

Hoe te gebruiken Integer.valueOf()

Integer.valueOf()een andere methode uit de klasse Integer. Deze methode geeft de decimale in­ter­pre­ta­tie van een strin­g­ob­ject weer en is dus ook handig voor het con­ver­te­ren van een Java-string naar een int. De syntaxis ziet er als volgt uit:

static int valueOf(int a)
java

Laten we eens kijken naar een eenvoudig voorbeeld:

public class Main {
	public static void main(String args[]) {
		String newString = "7312";
		int parNumber = Integer.valueOf(newString);
		System.out.println("The numerical value of the string is: " + parNumber);
	}
}
java

Je krijgt opnieuw het volgende resultaat:

The numerical value of the string is: 7312
java

Als de te­ken­reeks iets anders bevat dan een geheel getal, krijgen we dezelfde fout­mel­ding als hierboven.

Ga naar hoofdmenu