# 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](https://www.ionos.com/fi-fi/digitalguide/verkkosivustot/verkkosivujen-kehittaeminen/java-merkkijonot-1/) 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](https://www.ionos.com/fi-fi/digitalguide/verkkosivustot/verkkosivujen-kehittaeminen/java-primitiivit/) int, joka tarkoittaa kokonaislukua. [Java-int-tyypin](https://www.ionos.com/fi-fi/digitalguide/verkkosivustot/verkkosivujen-kehittaeminen/java-int-merkkijonoksi/) muuntamiseen [merkkijonoksi](https://www.ionos.com/fi-fi/digitalguide/verkkosivustot/verkkosivujen-kehittaeminen/java-int-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.

Huomio 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:

```java
static int parseInt(String s)
```

Katsotaanpa 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:

```java
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);
	}
}
```

Tässä on tulos:

```java
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);
}
}
```

</div>Tässä on virheilmoitus:

<div class="prism-container position-relative my-4" data-ctype="commonmark_content">```java
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)
```

</div>## Kä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:

<div class="prism-container position-relative my-4" data-ctype="commonmark_content">```java
static int valueOf(int a)
```

</div>Katsotaanpa yksinkertaista esimerkkiä:

<div class="prism-container position-relative my-4" data-ctype="commonmark_content">```java
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);
}
}
```

</div>Saat jälleen seuraavan tuloksen:

<div class="prism-container position-relative my-4" data-ctype="commonmark_content">```java
The numerical value of the string is: 7312
```

Jos merkkijono sisältää jotain muuta kuin kokonaisluvun, saamme saman virheilmoituksen kuin edellä.


This is a markdown version of: [https://www.ionos.com/fi-fi/digitalguide/verkkosivustot/verkkosivujen-kehittaeminen/java-merkkijono-int-tyypiksi/](https://www.ionos.com/fi-fi/digitalguide/verkkosivustot/verkkosivujen-kehittaeminen/java-merkkijono-int-tyypiksi/) for AI/LLM consumption.