Spis treści
Na koniec rozdziału o zmiennych poznamy pierwszy złożony typ danych – String, oraz nauczymy się jak wczytywać dane od użytkownika.
Typ String¶
W tym rozdziale poznaliśmy wszystkie 8 prymitywnych typów Javy. Istnieją także typy złożone – przykładem jest typ String, który służy do przechowywania ciągu znaków, i udostępnia programistom wiele przydatnych operacji, które można wykonać na łańcuchu tekstowym, jak na przykład:
- zamiana liter na małe/wielkie,
- wycinanie fragmentu tekstu,
- zamiana fragmentu tekstu na inny,
- wiele innych, o których można przeczytać w dokumentacji JavaDoc:
https://docs.oracle.com/en/java/javase/14/docs/api/java.base/java/lang/String.html
Użycie typu String jest proste – definiujemy zmienną o typie String, a następnie przypisujemy jej łańcuch tekstowy, otoczony cudzysłowami. Możemy też dodawać do stringu kolejne elementy, niekoniecznie tekstowe. Spójrzmy na przykład:
public class UzycieTypuString { public static void main(String[] args) { String imie = "Jan"; String nazwisko = "Nowak"; String osoba = imie + " " + nazwisko; int wiek = 25; String komunikat = osoba + " ma " + wiek + " lat."; System.out.println(komunikat); // korzystamy z metody toUpperCase, ktora zwraca // string z malymi literami zamienionymi na wielkie System.out.println(komunikat.toUpperCase()); } }
Wynik działania programu:
Użyliśmy metody toUpperCase klasy (typu) String, która zwróciła nam nowy łańcuch tekstowy z wszystkimi literami zamienionymi na wielkie litery.
Wczytywanie danych od użytkownika¶
Nasze programy będą ciekawsze, jeżeli będą pozwalały użytkownikowi na podanie danych wejściowych, na których będziemy mogli wykonywać różne operacje.
Będziemy w tym celu korzystali z poniższego kodu – należy skopiować zaznaczone fragmenty do własnego programu, by móc wczytywać dane od użytkownika:
import java.util.Scanner; public class PobieranieDanychOdUzytkownika { public static void main(String[] args) { // informujemy uzytkownika, co ma zrobic System.out.println("Prosze podac imie:"); // wczytujemy od uzytkownika pojedyncze slowo do zmiennej imie String imie = getString(); // wypisujemy komunikat, uzywajac wczytane od uzytkownika imie System.out.println("Witaj, " + imie + "!"); // kolejny przyklad – tym razem prosimy i wczytujemy liczbe calkowita System.out.println("Prosze podac promien kola:"); int r = getInt(); double poleKola = 3.14 * r * r; System.out.println("Pole kola o promieniu " + r + " wynosi: " + poleKola); } public static int getInt() { return new Scanner(System.in).nextInt(); } public static String getString() { return new Scanner(System.in).next(); } }
Nie będziemy na razie zagłębiać się w szczegóły tego kodu – w skrócie:
- w pierwszej linii, za pomocą słowa kluczowego import, informujemy kompilator, że chcemy korzystać z funkcjonalności klasy Scanner, importując tą klasę – o importach porozmawiamy w jednym z kolejnych rozdziałów,
- definiujemy dwie nowe metody, które korzystają z klasy Scanner w celu pobrania od użytkownika wartości liczbowej bądź ciągu znaków, i zwracają je – te metody to getInt oraz getString. O metodach także porozmawiamy wkrótce.
Jak działa powyższy program?
- Najpierw wypisany zostaje tekst "Prosze podac imie:".
- Następnie, wykonanie programu dochodzi do linii, w której korzystamy z metody getString, która z kolei korzysta z klasy Scanner – w tym miejscu, program się zatrzymuje do czasu, aż użytkownik nie wpisze za pomocą klawiatury tekstu i wciśnie przycisk Enter.
- Użytkownik wpisuje tekst, wciska klawisz Enter. Wartość wpisana przez użytkownika zostaje zapisana w zmiennej imie. Analogicznie dzieje się podczas pobierania wartości dla promienia koła, który zostaje umieszczony w zmiennej r.
Spójrzmy na wynikowe działanie programu (na białym tle zaznaczono dane podane z klawiatury przez użytkownika w trakcie działania programu):
Dodaj powyższą funkcjonalność wczytywania danych od użytkownika do jednego ze swoich programów i użyj jej, wzorując się na powyższym przykładzie, by pobrać od użytkownika dane.
Aby pobrać od użytkownika wartość, zdefiniuj zmienną, a następnie skorzystaj ze składni:
- jeżeli chcesz pobrać liczbę: zmiennaLiczbowa = getInt();
- jeżeli chcesz pobrać słowo: zmiennaString = getString();
W kolejnych rozdziałach będziemy często korzystali z powyższych metod.
Super kurs! 🙂
Dziękuję 🙂