Hvis du vil kon­ver­te­re en streng til int i Java, har du to enkle mu­lig­he­der – parseInt() og valueOf(). Begge disse mu­lig­he­der fungerer dog kun, hvis strengen ude­luk­ken­de in­de­hol­der hele tal og ikke over­skri­der vær­di­om­rå­det for datatypen int.

Hvad er en streng til int-kon­ver­te­ring i Java?

Java-strenge er sam­men­kæd­nin­ger, der kan indeholde tegn, cifre og spe­ci­al­tegn. I pro­gram­me­rings­spro­get Java kan cifre i form af heltal gemmes som et int. Hvis du har en streng, der kun in­de­hol­der hele tal, kan du kon­ver­te­re den til det primitive Java-type int, som står for heltal. Mens der er 5 for­skel­li­ge måder at kon­ver­te­re et Java-int til en streng, er der kun 2 ho­ved­må­der at kon­ver­te­re en Java-streng til et int. Det er Integer parseInt() og Integer.valueOf(). Nedenfor forklarer vi, hvordan disse metoder fungerer, ved hjælp af praktiske eksempler.

Note

Bemærk, at denne kon­ver­te­ring kun fungerer, hvis det på­gæl­den­de tal ligger mellem -2147483648 og 2147483647. Tal, der er større eller mindre, kan ikke re­præ­sen­te­res ved hjælp af datatypen int.

Sådan bruges Integer.parseInt()

parseInt() er en statisk metode, der tilhører klassen Integer og re­tur­ne­rer den numeriske værdi af den komplekse datatype string i form af den primitive datatype int. Dens syntaks ser således ud:

static int parseInt(String s)
java

Lad os se på et eksempel. Først ini­ti­a­li­se­rer vi en streng, der in­de­hol­der værdien ‘7312’ og intet andet. Derefter kon­ver­te­rer vi den Java-streng til et int ved hjælp af parseInt(), og til sidst udskriver vi re­sul­ta­tet ved hjælp af Java-kom­man­do­en System.out.println. Koden ser således ud:

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

Her er re­sul­ta­tet:

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

Her er fejl­med­del­el­sen:

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

Sådan bruges Integer.valueOf()

Integer.valueOf()en anden metode fra Integer-klassen. Den udgiver den decimale for­tolk­ning af et strengob­jekt og er derfor også nyttig til at kon­ver­te­re en Java-streng til et int. Dens syntaks ser således ud:

static int valueOf(int a)
java

Lad os se på et simpelt eksempel:

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

Du får igen følgende resultat:

The numerical value of the string is: 7312
java

Hvis strengen in­de­hol­der andet end et heltal, får vi den samme fejl­med­del­el­se som ovenfor.

Gå til ho­ved­me­nu­en