Hogyan lehet egy karakterláncot int típusúvá konvertálni Java-ban?
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.
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)javaNé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);
}
}javaItt 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);
}
}javaItt 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)javaHogyan 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)javaNé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);
}
}javaIsmét a következő eredményt kapja:
The numerical value of the string is: 7312javaHa a karakterlánc egész számon kívül bármi mást tartalmaz, akkor ugyanazt a hibaüzenetet kapjuk, mint fent.