Kuinka muuntaa merkkijono int-tyypiksi Java-kielessä
Jos haluat muuntaa merkkijonon int-tyypiksi Java-kielessä, sinulla on kaksi yksinkertaista vaihtoehtoa – parseInt() ja valueOf(). Molemmat vaihtoehdot toimivat kuitenkin vain, jos merkkijono sisältää yksinomaan kokonaislukuja eikä ylitä int-tietotyypin arvoaluetta.
Mikä on merkkijonon muuntaminen kokonaisluvuksi Java-kielessä?
Java-merkkijonot ovat yhdistelmiä, jotka voivat sisältää kirjaimia, numeroita ja erikoismerkkejä. Java-ohjelmointikielessä kokonaislukujen muodossa olevat numerot voidaan tallentaa int-tyyppisenä. Jos merkkijono sisältää vain kokonaislukuja, sen voi muuntaa Java-primitiiviksi int, joka tarkoittaa kokonaislukua. Java-int-tyypin muuntamiseen merkkijonoksi on viisi eri tapaa, mutta Java-merkkijonon muuntamiseen int-tyypiksi on vain kaksi pääasiallista tapaa. Ne ovat Integer parseInt() ja Integer.valueOf(). Seuraavassa selitämme näiden menetelmien toimintaa käytännön esimerkkien avulla.
Huomaa, että tämä muunnos toimii vain, jos kyseinen luku on välillä -2147483648 ja 2147483647. Suurempia tai pienempiä lukuja ei voi esittää int-tietotyypillä.
Käyttöohjeet Integer.parseInt()
parseInt() on staattinen metodi, joka kuuluu Integer-luokkaan ja palauttaa kompleksisen datatyypin merkkijonon numeerisen arvon primitiivisen datatyypin int muodossa. Sen syntaksi on seuraava:
static int parseInt(String s)javaKatsotaanpa esimerkkiä. Ensin alustamme merkkijonon, joka sisältää arvon “7312” eikä mitään muuta. Sitten muunnamme kyseisen Java-merkkijonon int-tyypiksi käyttämällä parseInt() ja lopuksi tulostamme tuloksen Java-komennolla System.out.println. Koodi näyttää seuraavalta:
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);
}
}javaTässä on tulos:
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);
}
}javaTässä on virheilmoitus:
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)javaKäyttöohjeet Integer.valueOf()
Integer.valueOf()toinen Integer-luokan menetelmä. Se tulostaa merkkijono-objektin desimaalimuodossa ja on siten hyödyllinen myös Java-merkkijonon muuntamisessa int-tyypiksi. Sen syntaksi on seuraava:
static int valueOf(int a)javaKatsotaanpa yksinkertaista esimerkkiä:
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);
}
}javaSaat jälleen seuraavan tuloksen:
The numerical value of the string is: 7312javaJos merkkijono sisältää jotain muuta kuin kokonaisluvun, saamme saman virheilmoituksen kuin edellä.