Om du vill konvertera en sträng till int i Java har du två enkla alternativ – parseInt() och valueOf(). Båda dessa alternativ fungerar dock endast om strängen uteslutande innehåller heltal och inte överskrider värdeintervallet för datatypen int.

Vad är en sträng till int-konvertering i Java?

Java-strängar är sammanfogningar som kan innehålla tecken, siffror och specialtecken. I programmeringsspråket Java kan siffror i form av heltal sparas som ett int. Om du har en sträng som endast innehåller heltal kan du konvertera den till Java-primitivet int, som står för heltal. Det finns fem olika sätt att konvertera ett Java-int till en sträng, men det finns bara två huvudsakliga sätt att konvertera en Java-sträng till ett int. De är Integer parseInt() och Integer.valueOf(). Nedan förklarar vi hur dessa metoder fungerar med hjälp av praktiska exempel.

Notis

Observera att denna konvertering endast fungerar om siffran i fråga ligger mellan -2147483648 och 2147483647. Siffror som är större eller mindre kan inte representeras med datatypen int.

Hur man använder Integer.parseInt()

parseInt() är en statisk metod som tillhör klassen Integer och returnerar det numeriska värdet av den komplexa datatypen string i form av den primitiva datatypen int. Dess syntax ser ut som följer:

static int parseInt(String s)
java

Låt oss titta på ett exempel. Först initialiserar vi en sträng som innehåller värdet “7312” och ingenting annat. Sedan konverterar vi den Java-strängen till ett int med hjälp av parseInt(), och slutligen skriver vi ut resultatet med hjälp av Java-kommandot System.out.println. Koden ser ut som följer:

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

Här är 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

Här är felmeddelandet:

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

Hur man använder Integer.valueOf()

Integer.valueOf()en annan metod från klassen Integer. Den matar ut den decimala tolkningen av ett strängobjekt och är därmed också användbar för att konvertera en Java-sträng till ett int. Dess syntax ser ut som följer:

static int valueOf(int a)
java

Låt oss ta ett enkelt exempel:

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 återigen följande resultat:

The numerical value of the string is: 7312
java

Om strängen innehåller något annat än ett heltal får vi samma felmeddelande som ovan.

Gå till huvudmeny