Hvis du vil konvertere en streng til int i Java, har du to enkle alternativer – parseInt() og valueOf(). Begge disse alternativene fungerer imidlertid bare hvis strengen utelukkende inneholder hele tall og ikke overskrider verdibereik for datatypen int.

Hva er en streng til int-konvertering i Java?

Java-strenger er sammenkoblinger som kan inneholde tegn, tall og spesialtegn. I programmeringsspråket Java kan tall i form av heltall lagres som int. Hvis du har en streng som bare inneholder heltall, kan du konvertere den til Java-primitivet int, som står for integer (heltall). Mens det finnes fem forskjellige måter å konvertere en Java int til en streng på, er det bare to hovedmåter å konvertere en Java-streng til en int på. De er Integer parseInt() og Integer.valueOf(). Nedenfor forklarer vi hvordan disse metodene fungerer ved hjelp av praktiske eksempler.

Note

Merk at denne konverteringen bare fungerer hvis tallet i spørsmålet ligger mellom -2147483648 og 2147483647. Tall som er større eller mindre kan ikke representeres ved hjelp av datatypen int.

Hvordan bruke Integer.parseInt()

parseInt() er en statisk metode som tilhører klassen Integer og returnerer den numeriske verdien av den komplekse datatypen string i form av den primitive datatypen int. Syntaksen ser slik ut:

static int parseInt(String s)
java

La oss se på et eksempel. Først initialiserer vi en streng som inneholder verdien «7312» og ingenting annet. Deretter konverterer vi den Java-strengen til et int ved hjelp av parseInt(), og til slutt skriver vi ut resultatet ved hjelp av Java-kommandoen System.out.println. Koden vil se slik ut:

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 resultatet:

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 feilmeldingen:

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

Hvordan bruke Integer.valueOf()

Integer.valueOf()en annen metode fra Integer-klassen. Den gir ut den desimale tolkningen av et strengobjekt og er dermed også nyttig for å konvertere en Java-streng til et int. Syntaksen ser slik ut:

static int valueOf(int a)
java

La oss se på et enkelt 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 igjen følgende resultat:

The numerical value of the string is: 7312
java

Hvis strengen inneholder noe annet enn et helt tall, får vi samme feilmelding som ovenfor.

Go to Main Menu