0Pricing
Java Academy · Lekcja

Parsowanie i valueOf

Konwertuj napisy na liczby

Parsowanie i valueOf to bezpłatna lekcja Java Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Java Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Java Academy zawiera 4 lekcji w sumie.

Z tekstu do liczb

Dane wprowadzane przez użytkownika i dane z plików trafiają do programu jako tekst typu String. Aby wykonywać obliczenia, trzeba konwertować te ciągi znaków na liczby.

Klasy opakowujące udostępniają do tego dwie rodziny metod: parseXxx zwraca typ prosty, a valueOf zwraca obiekt klasy opakowującej.

parseInt zwraca typ prosty

Integer.parseInt przyjmuje ciąg znaków i zwraca zwykłą wartość typu int. Jest to najczęściej używana metoda parsowania.

public class Main {
    public static void main(String[] args) {
        int n = Integer.parseInt("123");
        System.out.println(n + 1);
    }
}

valueOf zwraca klasę opakowującą

Integer.valueOf przyjmuje ciąg znaków i zwraca obiekt typu Integer zamiast typu prostego. Jest przydatna, gdy potrzebują Państwo bezpośrednio klasy opakowującej, na przykład aby umieścić ją w kolekcji.

public class Main {
    public static void main(String[] args) {
        Integer boxed = Integer.valueOf("456");
        System.out.println(boxed);
    }
}

Parsowanie liczb dziesiętnych

W przypadku tekstu zmiennoprzecinkowego proszę użyć Double.parseDouble. Metoda obsługuje wartości z kropką dziesiętną, a nawet zapis naukowy.

public class Main {
    public static void main(String[] args) {
        double price = Double.parseDouble("19.99");
        System.out.println(price * 2);
    }
}

Parsowanie innych typów

Każda liczbowa klasa opakowująca ma metodę parsującą: Long.parseLong, Double.parseDouble, Float.parseFloat, Short.parseShort i Byte.parseByte.

public class Main {
    public static void main(String[] args) {
        long big = Long.parseLong("9000000000");
        System.out.println(big);
    }
}

Parsowanie wartości logicznych

Boolean.parseBoolean zwraca true tylko wtedy, gdy tekst jest równy "true" bez uwzględniania wielkości liter. Każdy inny ciąg znaków, w tym null, zwraca false.

public class Main {
    public static void main(String[] args) {
        System.out.println(Boolean.parseBoolean("true"));
        System.out.println(Boolean.parseBoolean("TRUE"));
        System.out.println(Boolean.parseBoolean("yes"));
    }
}

Parsowanie w różnych systemach liczbowych

Integer.parseInt przyjmuje opcjonalny argument radix. Przekazanie wartości 2 pozwala odczytać liczbę binarną, a wartości 16 — szesnastkową.

public class Main {
    public static void main(String[] args) {
        int binary = Integer.parseInt("1010", 2);
        int hex = Integer.parseInt("ff", 16);
        System.out.println(binary);
        System.out.println(hex);
    }
}

Nieprawidłowe dane powodują wyjątek

Jeśli ciąg znaków nie jest prawidłową liczbą, parsowanie powoduje zgłoszenie wyjątku NumberFormatException. Ryzykowne operacje parsowania należy umieszczać w bloku try-catch.

public class Main {
    public static void main(String[] args) {
        try {
            int n = Integer.parseInt("hello");
            System.out.println(n);
        } catch (NumberFormatException e) {
            System.out.println("Not a number!");
        }
    }
}

Proszę uważać na białe znaki

Parsowanie nie toleruje spacji otaczających tekst. Integer.parseInt(" 5 ") powoduje zgłoszenie wyjątku.

Przed parsowaniem danych wprowadzonych przez użytkownika należy zawsze wywołać trim() lub strip().

public class Main {
    public static void main(String[] args) {
        String raw = "  42  ";
        int n = Integer.parseInt(raw.trim());
        System.out.println(n);
    }
}

Z liczb z powrotem do tekstu

W odwrotnym kierunku proszę użyć String.valueOf lub Integer.toString. Obie metody konwertują liczbę na postać tekstową.

public class Main {
    public static void main(String[] args) {
        String text = Integer.toString(789);
        String text2 = String.valueOf(3.14);
        System.out.println(text.length());
        System.out.println(text2);
    }
}

parseXxx a valueOf

Proszę zapamiętać tę zasadę: parseInt zwraca typ prosty int, natomiast valueOf zwraca obiekt typu Integer. Wyboru należy dokonać w zależności od tego, czy potrzebny jest typ prosty, czy klasa opakowująca.

Szybkie sprawdzenie

Proszę sprawdzić swoją wiedzę o parsowaniu.

Podsumowanie

Poznali Państwo sposoby konwertowania ciągów znaków na liczby i odwrotnie:

  • parseInt, parseDouble i podobne metody zwracają typy proste
  • valueOf zwraca obiekty klas opakowujących
  • Nieprawidłowe dane powodują zgłoszenie wyjątku NumberFormatException, dlatego należy usunąć białe znaki i obsłużyć wyjątek
  • parseInt może odczytywać liczby w innych systemach za pomocą argumentu radix
  • Do powrotu do postaci tekstowej proszę użyć toString lub String.valueOf

Często zadawane pytania

Czy lekcja „Parsowanie i valueOf” jest bezpłatna?

Tak — pełny tekst „Parsowanie i valueOf” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Java Academy, przejdź na CoddyKit PRO. Kurs Java Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Parsowanie i valueOf”?

Konwertuj napisy na liczby Ćwiczysz Java Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Java Academy?

Nie wymagamy żadnego doświadczenia. Java Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Parsowanie i valueOf”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Java Academy?

Tak. Każda lekcja Java Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Typy prymitywne a opakowujące
  2. Autoboxing i unboxing
  3. Parsowanie i valueOf
  4. Pułapki autoboxingu
← Powrót do Java Academy