Jak převést řetězec na int v Javě
Pokud chcete v Javě převést řetězec na int, máte dvě jednoduché možnosti – parseInt() a valueOf(). Obě tyto možnosti však fungují pouze v případě, že řetězec obsahuje výhradně celá čísla a nepřekračuje rozsah hodnot datového typu int.
Co je to převod řetězce na celé číslo v Javě?
Java řetězce jsou spojení, která mohou obsahovat znaky, číslice a speciální znaky. V programovacím jazyce Java lze číslice ve formě celočíselných hodnot ukládat jako int. Pokud máte řetězec, který obsahuje pouze celá čísla, můžete jej převést na primitivní typ Java int, což je zkratka pro integer (celé číslo). Zatímco existuje 5 různých způsobů, jak převést Java int na řetězec, existují pouze 2 hlavní způsoby, jak převést Java řetězec na int. Jsou to Integer parseInt() a Integer.valueOf(). Níže vysvětlíme, jak tyto metody fungují, pomocí praktických příkladů.
Upozorňujeme, že tato konverze bude fungovat pouze v případě, že dané číslo je v rozmezí -2147483648 až 2147483647. Čísla, která jsou větší nebo menší, nelze pomocí datového typu int vyjádřit.
Jak používat Integer.parseInt()
parseInt() je statická metoda, která patří do třídy Integer a vrací číselnou hodnotu komplexního datového typu string ve formě primitivního datového typu int. Její syntaxe vypadá následovně:
static int parseInt(String s)javaPodívejme se na příklad. Nejprve inicializujeme řetězec, který obsahuje hodnotu „7312“ a nic jiného. Poté převedeme tento řetězec Java na int pomocí parseInt() a nakonec vygenerujeme výsledek pomocí příkazu Java System.out.println. Kód bude vypadat následovně:
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);
}
}javaZde 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);
}
}javaZde je chybová zprá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)javaJak používat Integer.valueOf()
Integer.valueOf()další metoda třídy Integer. Vypíše desítkovou interpretaci řetězcového objektu, a je tedy také užitečná pro převod řetězce Java na int. Její syntaxe vypadá následovně:
static int valueOf(int a)javaPodívejme se na jednoduchý pří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 následující výsledek:
The numerical value of the string is: 7312javaPokud řetězec obsahuje cokoli jiného než celé číslo, zobrazí se stejná chybová zpráva jako výše.