Als je in Java een string naar int wilt converteren, heb je twee eenvoudige opties: parseInt() en valueOf(). Beide opties werken echter alleen als de string uitsluitend gehele getallen bevat en het waardebereik van het int-gegevenstype niet overschrijdt.

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

Java-strings zijn aaneenschakelingen die tekens, cijfers en speciale tekens kunnen bevatten. In de programmeertaal Java kunnen cijfers in de vorm van gehele getallen worden opgeslagen als een int. Als u een string hebt die alleen gehele getallen bevat, kunt u deze converteren naar de Java-primitieve int, wat staat voor integer. Hoewel er 5 verschillende manieren zijn om een Java int naar een string te converteren, zijn er slechts 2 belangrijke manieren om een Java-string naar een int te converteren. Dit zijn Integer parseInt() en Integer.valueOf(). Hieronder leggen we aan de hand van praktische voorbeelden uit hoe deze methoden werken.

Opmerking

Houd er rekening mee dat deze conversie alleen werkt als het betreffende getal tussen -2147483648 en 2147483647 ligt. Grotere of kleinere getallen kunnen niet worden weergegeven met het gegevenstype 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 gegevenstype string retourneert in de vorm van het primitieve gegevenstype int. De syntaxis ziet er als volgt uit:

static int parseInt(String s)
java

Laten we eens naar een voorbeeld kijken. Eerst initialiseren we een string die alleen de waarde ‘7312’ bevat. Vervolgens converteren 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 foutmelding:

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 interpretatie van een stringobject weer en is dus ook handig voor het converteren 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 tekenreeks iets anders bevat dan een geheel getal, krijgen we dezelfde foutmelding als hierboven.

Ga naar hoofdmenu