Ako previesť reťazec na int v Jave
Ak chcete v Jave previesť reťazec na int, máte dve jednoduché možnosti – parseInt() a valueOf(). Obidve možnosti však fungujú len vtedy, ak reťazec obsahuje výlučne celé čísla a neprekračuje rozsah hodnôt dátového typu int.
Čo je konverzia reťazca na celé číslo v Jave?
Java reťazce sú zreťazenia, ktoré môžu obsahovať znaky, číslice a špeciálne znaky. V programovacom jazyku Java sa číslice vo forme celočíselných hodnôt môžu uložiť ako int. Ak máte reťazec, ktorý obsahuje iba celé čísla, môžete ho previesť na primitívny typ Java int, čo znamená celé číslo. Hoci existuje 5 rôznych spôsobov, ako previesť Java int na reťazec, existujú iba 2 hlavné spôsoby, ako previesť Java reťazec na int. Sú to Integer parseInt() a Integer.valueOf(). Nižšie vysvetlíme, ako tieto metódy fungujú, na praktických príkladoch.
Upozorňujeme, že táto konverzia bude fungovať len v prípade, ak je dané číslo v rozmedzí od -2147483648 do 2147483647. Čísla, ktoré sú väčšie alebo menšie, nemožno vyjadriť pomocou dátového typu int.
Ako používať Integer.parseInt()
parseInt() je statická metóda, ktorá patrí do triedy Integer a vracia číselnú hodnotu reťazca komplexného dátového typu vo forme primitívneho dátového typu int. Jej syntax vyzerá takto:
static int parseInt(String s)javaPozrime sa na príklad. Najskôr inicializujeme reťazec, ktorý obsahuje hodnotu „7312“ a nič iné. Potom tento reťazec Java prevedieme na int pomocou parseInt() a nakoniec výsledok vypíšeme pomocou príkazu Java System.out.println. Kód bude vyzerať takto:
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);
}
}javaTu je výstup:
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);
}
}javaTu je chybová správa:
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)javaAko používať Integer.valueOf()
Integer.valueOf()ďalšia metóda triedy Integer. Vypíše desatinné interpretácie reťazcového objektu, a je tak užitočná aj na konverziu reťazca Java na int. Jej syntax vyzerá takto:
static int valueOf(int a)javaPozrime sa na jednoduchý príklad:
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);
}
}javaZnovu dostanete nasledujúci výsledok:
The numerical value of the string is: 7312javaAk reťazec obsahuje čokoľvek okrem celého čísla, dostaneme rovnakú chybovú správu ako vyššie.