Kui soovite Java-s stringi tei­sen­dada int-iks, on teil kaks lihtsat võimalust – parseInt() ja valueOf(). Mõlemad või­ma­lu­sed toimivad aga ainult juhul, kui string sisaldab ainult täisarve ja ei ületa int-and­me­tüübi väärtuste vahemikku.

Mis on stringi tei­sen­da­mine int-iks Java-s?

Java stringid on ühendused, mis võivad sisaldada tähti, numbreid ja erimärke. Java prog­ram­mee­ri­mis­kee­les saab täis­ar­vude kujul olevaid numbreid sal­ves­tada int-tüüpi muutujana. Kui teil on string, mis sisaldab ainult täisarve, saate selle tei­sen­dada Java pri­mi­tiivse int-tüüpi muutujaks, mis tähistab täisarvu. Kuigi Java int-tüüpi muutuja stringiks tei­sen­da­miseks on 5 erinevat viisi, on Java stringi int-tüüpi muutujaks tei­sen­da­miseks ainult 2 peamist viisi. Need on Integer parseInt() ja Integer.valueOf(). Allpool selgitame prak­ti­liste näidete abil, kuidas need meetodid toimivad.

Note

Pange tähele, et see teisendus toimib ainult juhul, kui kõnealune number on vahemikus -2147483648 kuni 2147483647. Suuremaid või väik­se­maid numbreid ei saa esitada int-and­me­tüü­biga.

Kuidas kasutada Integer.parseInt()

parseInt() on staa­ti­line meetod, mis kuulub klassi Integer ja tagastab komp­leksse and­me­tüübi string numb­ri­lise väärtuse pri­mi­tiivse and­me­tüübi int kujul. Selle süntaks on järgmine:

static int parseInt(String s)
java

Vaatame ühte näidet. Esmalt algatame stringi, mis sisaldab väärtust „7312” ja mitte midagi muud. Seejärel tei­sen­dame selle Java stringi int-tüüpi kasutades parseInt() ja lõpuks väl­jas­tame tulemuse kasutades Java käsku System.out.println. Kood näeb välja järgmine:

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

Siin on väljund:

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

Siin on veateade:

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

Kuidas kasutada Integer.valueOf()

Integer.valueOf()veel üks Integer-klassi meetod. See väljastab string-objekti küm­nend­mõõt­mise ja on seega kasulik ka Java stringi int-tüüpi tei­sen­da­miseks. Selle süntaks on järgmine:

static int valueOf(int a)
java

Võtame lihtsa näite:

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

Saate taas järgmise tulemuse:

The numerical value of the string is: 7312
java

Kui string sisaldab midagi muud peale täisarvu, saame sama veateate, mis eespool.

Go to Main Menu