Przybliżony poziom wymaganej wiedzy: misja Java Syntax i trochę Java Core.
Pod koniec pierwszego zadania JavaRush dowiadujemy się o konwersji typów. Na wykładach na poziomie 10 można było zobaczyć, że konwersja int
na String
jest bardzo prosta i ogólnie rzecz biorąc, prawie każdy typ pierwotny może zostać przekonwertowany String
bez problemów.
int x = 5;
String text = "X=" + x;
Ponadto ci, którzy ukończyli już 10 poziom zadania Java Syntax, wiedzą, że nie da się przekonwertować odniesienia do liczby na odwołanie do ciągu znaków. Jaki jest zatem najlepszy sposób na konwersję ciągu znaków na pierwotną liczbę całkowitą? Lepiej to zrobić metodą parseInt
klasową Integer
. Metoda parseInt
musi zostać przekonwertowana String
na typ int
i zgłasza wyjątek NumberFormatException
, jeśli nie można przekonwertować ciągu na typ int
.
Przykład
Podstawowa linia konwertująca ciąg znaków na liczbę całkowitą:
int i = Integer.parseInt (myString);
Jeśli ciąg znaków oznaczony przez zmienną myString
jest prawidłową liczbą całkowitą, np. „1”, „200”, Java po cichu przekonwertuje ją na pierwotny typ danych int
. Jeśli z jakiegoś powodu to się nie powiedzie, taka akcja może zgłosić wyjątek NumberFormatException
, dlatego aby program działał poprawnie dla dowolnego ciągu znaków, potrzebujemy trochę więcej kodu. Program demonstrujący sposób konwersji Java String
na int
, sterowanie możliwymi NumberFormatException
:
public class JavaStringToIntExample
{
public static void main (String[] args)
{
String s = "100";
try
{
int i = Integer.parseInt(s.trim());
System.out.println("int i = " + i);
}
catch (NumberFormatException nfe)
{
System.out.println("NumberFormatException: " + nfe.getMessage());
}
}
Dyskusja
Kiedy przestudiujesz powyższy przykład, zobaczysz, że metoda Integer.parseInt (s.trim ())
służy do zamiany ciągu znaków s
na liczbę całkowitą i
, a dzieje się to w następującym wierszu kodu:
int i = Integer.parseInt (s.trim ())
Ale czasami konwersja ciągu na liczbę po prostu nie zadziała. W naszym przykładzie takim ciągiem jest imię fred. Możemy mówić o kodach, w których litery są zapisywane na komputerze, ale formalnie rzecz biorąc, fred nie jest liczbą i lepiej zostawić go w postaci ciągu znaków. Nasz program został zaprojektowany w taki sposób, że jeśli spróbujesz przekonwertować „fred” na liczbę, proces Integer parseInt
zgłosi wyjątek NumberFormatException
, który musisz obsłużyć w bloku try / catch
. W tym przypadku nie musisz używać metody trim ()
klasowej String
, ale w prawdziwym programowaniu powinieneś z niej skorzystać. Więc pokazaliśmy to wam. Jako że pojawił się ten temat, poniżej kilka „podpowiedzi” odnośnie tematu zajęć String
oraz Integer
:
Integer.toString (int i)
używany do konwersji int
na ciągi Java.
- Jeśli chcesz przekonwertować obiekt
String
na obiekt Integer
(a nie klasę pierwotną int
), użyj metody valueOf ()
on-class Integer
zamiast metody parseInt ()
.
- Jeśli chcesz przekonwertować ciągi znaków na dodatkowe prymitywne pola Java, użyj metod takich jak ta
Long.parseLong ()
.
Odpowiedź: Alicja Watson
GO TO FULL VERSION