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ę