Składnia Java: Konwertowanie ciągów na liczby

click fraud protection

Zazwyczaj w Graficzny interfejs użytkownika, pojawią się pola tekstowe, które oczekują od użytkownika wprowadzenia wartości liczbowej. Ta wartość liczbowa skończy się na Strunowy obiekt, który tak naprawdę nie pomaga Twojemu programowi, jeśli chcesz wykonać arytmetykę. Na szczęście istnieją klasy opakowań, które zapewniają metody konwersji tych wartości String na liczby, a klasa String ma metodę ich ponownej konwersji.

Klasy owijania

The prymitywne typy danych które dotyczą liczb (tj. bajtów, liczb całkowitych, liczb podwójnych, liczb zmiennoprzecinkowych, długich i krótkich) wszystkie mają odpowiedniki klasowe. Klasy te nazywane są klasami opakowań, ponieważ przyjmują prymitywny typ danych i otaczają go funkcjonalnością klasy. Na przykład klasa Double będzie miała podwójną wartość jako swoje dane i zapewni metody do manipulowania tą wartością.

Wszystkie te klasy opakowań mają metodę o nazwie valueOf. Ta metoda przyjmuje ciąg jako argument i zwraca instancję klasy opakowania. Załóżmy na przykład, że mamy ciąg znaków o wartości dziesięć:

instagram viewer
Numer ciągu = „10”;

Posiadanie tego numeru jako ciągu nie jest dla nas przydatne, dlatego używamy klasy Integer do konwersji go na obiekt Integer:

Liczba całkowita przekonwertowana liczba = liczba całkowita.wartośćOf (liczba);

Teraz liczba może być używana jako liczba, a nie ciąg:

przekonwertowany numer = przekonwertowany numer + 20;

Możesz także sprawić, że konwersja przejdzie bezpośrednio do pierwotnego typu danych:

int convertNumber = Integer.valueOf (number) .intValue ();

W przypadku innych prymitywnych typów danych wystarczy umieścić w odpowiedniej klasie opakowania - bajt, liczba całkowita, liczba podwójna, liczba zmiennoprzecinkowa, długość długa krótka.

Uwaga: Musisz upewnić się, że ciąg może zostać przeanalizowany do odpowiedniego typu danych. Jeśli nie będzie to możliwe, wystąpi błąd wykonania. Na przykład próba ukrycia „dziesiątki” w liczbę całkowitą:

Numer ciągu = „dziesięć”;
int convertNumber = Integer.valueOf (number) .intValue ();

wygeneruje wyjątek NumberFormatException, ponieważ kompilator nie ma pojęcia, że ​​„dziesięć” powinno wynosić 10.

Bardziej subtelnie ten sam błąd wystąpi, jeśli zapomnisz, że „int” może zawierać tylko liczby całkowite:

Numer ciągu = „10,5”;
int convertNumber = Integer.valueOf (number) .intValue ();

Kompilator nie skróci liczby, po prostu pomyśli, że nie pasuje do „int” i że nadszedł czas, aby zgłosić wyjątek NumberFormatException.

Konwertowanie liczb na ciągi

Aby przekształcić liczbę w ciąg znaków, postępuj zgodnie z tym samym wzorcem, co klasa String ma również metodę valueOf. Może przyjmować dowolny argument liczby pierwotnych typów danych jako argument i generować ciąg:

liczba całkowita Dwadzieścia = 20;

Ciąg przekonwertowany = String.valueOf (numberTwenty);

co powoduje, że „20” jest wartością ciągu dla odwróconego.

lub możesz użyć metody toString dowolnej klasy opakowania:

Ciąg przekonwertowany = Integer.toString (numberTwenty);

Metoda toString jest wspólna dla wszystkich typów obiektów - przez większość czasu jest to tylko opis obiektu. W przypadku klas opakowań ten opis jest rzeczywistą zawartą w nich wartością. W tym kierunku konwersja jest nieco bardziej niezawodna. Jeśli zamiast liczby całkowitej miałaby być używana klasa Double:

Ciąg przekonwertowany = Double.toString (numberTwenty);

wynik nie spowodowałby błąd czasu wykonywania. Konwertowana zmienna zawiera ciąg „20.0”.

Istnieje również bardziej subtelny sposób konwersji liczb, gdy jesteś Łączenie strun. Jeśli ciąg znaków miałby zostać zbudowany w następujący sposób:

Ciąg aboutDog = „Mój pies ma” + liczba Dwadzieścia + „lat.”;

konwersja liczby całkowitej Dwadzieścia odbywa się automatycznie.

instagram story viewer