Om du vill kon­ver­te­ra en sträng till int i Java har du två enkla al­ter­na­tiv – parseInt() och valueOf(). Båda dessa al­ter­na­tiv fungerar dock endast om strängen ute­slu­tan­de in­ne­hål­ler heltal och inte över­skri­der vär­de­in­ter­val­let för datatypen int.

Vad är en sträng till int-kon­ver­te­ring i Java?

Java-strängar är sam­man­fog­ning­ar som kan innehålla tecken, siffror och spe­ci­al­tec­ken. I pro­gram­me­rings­språ­ket Java kan siffror i form av heltal sparas som ett int. Om du har en sträng som endast in­ne­hål­ler heltal kan du kon­ver­te­ra den till Java-pri­mi­ti­vet int, som står för heltal. Det finns fem olika sätt att kon­ver­te­ra ett Java-int till en sträng, men det finns bara två hu­vud­sak­li­ga sätt att kon­ver­te­ra 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 kon­ver­te­ring endast fungerar om siffran i fråga ligger mellan -2147483648 och 2147483647. Siffror som är större eller mindre kan inte re­pre­sen­te­ras med datatypen int.

Hur man använder Integer.parseInt()

parseInt() är en statisk metod som tillhör klassen Integer och re­tur­ne­rar 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 ini­ti­a­li­se­rar vi en sträng som in­ne­hål­ler värdet “7312” och ingenting annat. Sedan kon­ver­te­rar vi den Java-strängen till ett int med hjälp av parseInt(), och slutligen skriver vi ut re­sul­ta­tet 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 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

Här är fel­med­de­lan­det:

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 tolk­ning­en av ett sträng­ob­jekt och är därmed också användbar för att kon­ver­te­ra 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 in­ne­hål­ler något annat än ett heltal får vi samma fel­med­de­lan­de som ovan.

Gå till huvudmeny