Ha Java-ban egy karakterláncot int típusúvá szeretnél konvertálni, két egyszerű lehetőséged van: parseInt() és valueOf(). Mindkét lehetőség azonban csak akkor működik, ha a karakterlánc kizárólag egész számokat tartalmaz, és nem haladja meg az int adattípus értéktartományát.

Mi az a karakterlánc-int konverzió Java-ban?

A Java karakterláncok olyan összefűzések, amelyek karaktereket, számjegyeket és speciális karaktereket tartalmazhatnak. A Java programozási nyelvben az egész számok formájában megjelenő számjegyek int típusként menthetők. Ha van egy karakterláncunk, amely csak egész számokat tartalmaz, akkor azt Java primitív int típusra konvertálhatjuk, amely az egész számot jelenti. Míg a Java int típusú karakterláncok konvertálására 5 különböző módszer létezik, a Java karakterláncok int típusú karakterláncokra való konvertálására csak 2 fő módszer létezik. Ezek Integer parseInt() és Integer.valueOf(). Az alábbiakban gyakorlati példák segítségével magyarázzuk el, hogyan működnek ezek a módszerek.

Megjegyzés

Ne feledje, hogy ez az átalakítás csak akkor működik, ha a kérdéses szám -2147483648 és 2147483647 között van. Az ennél nagyobb vagy kisebb számok nem ábrázolhatók az int adattípussal.

Hogyan kell használni Integer.parseInt()

parseInt() egy statikus metódus, amely az Integer osztályhoz tartozik, és a komplex adattípusú string numerikus értékét adja vissza primitív adattípusú int formában. Szintaxisa a következő:

static int parseInt(String s)
java

Nézzünk egy példát. Először inicializálunk egy karakterláncot, amely csak a „7312” értéket tartalmazza. Ezután a Java karakterláncot parseInt() segítségével int típusúvá alakítjuk, végül pedig a Java System.out.println parancs segítségével kinyomtatjuk az eredményt. A kód a következőképpen fog kinézni:

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

Itt van az eredmény:

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

Itt van a hibaüzenet:

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

Hogyan kell használni Integer.valueOf()

Integer.valueOf()az Integer osztály egy másik metódusa. Egy karakterlánc objektum tizedes értelmezését adja ki, így Java karakterláncok int típusúvá alakításához is hasznos. Szintaxisa a következő:

static int valueOf(int a)
java

Nézzünk egy egyszerű példát:

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

Ismét a következő eredményt kapja:

The numerical value of the string is: 7312
java

Ha a karakterlánc egész számon kívül bármi mást tartalmaz, akkor ugyanazt a hibaüzenetet kapjuk, mint fent.

Ugrás a főmenübe