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ę 🙂