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,parseDoublei podobne metody zwracają typy prostevalueOfzwraca 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 parseIntmoże odczytywać liczby w innych systemach za pomocą argumentu radix- Do powrotu do postaci tekstowej proszę użyć
toStringlubString.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
- Typy prymitywne a opakowujące
- Autoboxing i unboxing
- Parsowanie i valueOf
- Pułapki autoboxingu