CodeGym /Kursy /JAVA 25 SELF /Konwersja między typami danych

Konwersja między typami danych

JAVA 25 SELF
Poziom 2 , Lekcja 3
Dostępny

1. Po co jest potrzebna konwersja typów?

Java — to język o ścisłym typowaniu. Jeśli komputer ma „pudełko” na liczbę, to próba włożenia tam tekstu — mniej więcej to samo, co próba wsadzenia widelca do gniazda USB. Kompilator ci tego nie wybaczy! 😡

Jednak w praktyce często pracujemy równocześnie z różnymi typami danych. Na przykład masz ciąg, który zawiera liczbę. I tu właśnie potrzebna jest konwersja (czyli przekształcenie) typów.

Rozważmy przykład. Załóżmy, że chcesz przechowywać liczbę użytkowników:

int a = 1;
int b = "2";
int c = "trzy";

Kompilator od razu powie: „Za kogo ty mnie masz? Nie potrafię automatycznie przekształcać ciągu w liczbę, bez ciebie ani rusz. Trzeba jawnie zamienić ciąg na liczbę.”

W Java istnieje kilka sposobów konwersji, a każdy — ze swoimi plusami, minusami i typowymi pułapkami.

2. Konwertujemy int na String

W naszej pracy często trzeba uzyskać tekstową reprezentację liczby: na przykład, aby wyświetlić ją na ekranie, zapisać do pliku, przesłać przez sieć, połączyć z tekstem itd. W Java istnieje kilka sposobów, z których każdy jest wygodny w innych sytuacjach.

Funkcja String.valueOf()

To podstawowy i najczęściej stosowany sposób:

int number = 42;
String str = String.valueOf(number);  // str == "42"

String.valueOf() przekształca liczbę w taki ciąg, który odpowiada typowi przekazanego do niej obiektu.

Konkatenacja z pustym ciągiem

Stary, ale skuteczny sposób:

int number = 42;
String str = "" + number;

Takie podejście działa szybko w prostych przypadkach, ale jest mniej czytelne dla programisty czytającego kod.

3. Niejawna konwersja do ciągu

Jak już wspomniano wyżej, twórcy Java sprawili, że absolutnie wszystkie zmienne, obiekty i wyrażenia w Java można przekształcić do typu String.

Co więcej, dzieje się to automatycznie, gdy łączymy typ String z jakimś innym typem. Przykłady:

int a = 5;
String name = "Ania" + a;            //  name zawiera ciąg Ania5

int a = 5;
String city = a + "New York" + a;   //  city zawiera ciąg 5New York5

int number = 10;
String code = "Yo";
String message = "Hello! " + number + code; //  message zawiera ciąg Hello! 10Yo

We wszystkich trzech przykładach spokojnie łączyliśmy zmienne typu int i String, a w rezultacie zawsze otrzymaliśmy typ String.

Ważne! Operacji arytmetycznych z typem String nie wolno wykonywać. Nawet jeśli ciąg w całości składa się z cyfr.

Przykłady:

int a = 5;
String name = "1" + a;              //  name zawiera ciąg 15

int a = 5;
String city = a + "9" + a;          //  city zawiera ciąg 595

int number = 10;
String code = "10";
String message = "" + number + code; // message zawiera ciąg 1010 

Operacja dodawania wykonywana jest od lewej do prawej, więc wynik może być nieco zaskakujący. Przykład:

int a = 5;
String name = a + a + "1" + a;      // name zawiera ciąg 1015

Kolejność wykonywania: ((a + a) + "1") + a

4. Konwersja ciągu na liczbę

Aby zamienić liczbę na ciąg w Java, wystarczy złączyć ją z pustym ciągiem:

String str = "" + chislo;

A co zrobić, jeśli trzeba przekształcić ciąg w liczbę? Nie każdy ciąg da się zamienić na liczbę. Ale jeśli ciąg składa się tylko z cyfr, to jednak można. W tym celu w Java jest specjalna funkcja.

Polecenie wygląda tak:


int x = Integer.parseInt(stroka);
Konwersja ciągu na liczbę

Gdzie int x — to deklaracja zmiennej całkowitej x, a stroka — to liczba podana w postaci ciągu (ciąg, składający się z cyfr).

Przykłady:

String str = "123";
int number1 = Integer.parseInt(str);        //  number1 zawiera liczbę 123;

int number2 = Integer.parseInt("321");      //  number2 zawiera liczbę 321

int number3 = Integer.parseInt("321" + 0);  //  number3 zawiera liczbę 3210

int number4 = "321"; //  Nie skompiluje się: zmienna typu int, a wartość typu String

Dla wartości ujemnych to również działa: funkcja Integer.parseInt() jest bardzo „sprytna”.

Komentarze (1)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
Monika Strzelec Poziom 2, Łódź, Poland
14 lutego 2026
nie moge przejść do kolejnej lekcji bo niby brakuje mi czarnej materii ale jednoczesśnie nie mam zadań do wykonania. O co w tym chodzi?