Rozdział 3 - Zmienne - String i wczytywanie danych od użytkownika

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:

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:

Nazwa pliku: UzycieTypuString.java
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:

Jan Nowak ma 25 lat. JAN NOWAK MA 25 LAT.

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.

Wartość zmiennej komunikat w powyższym przykładzie nie uległa zmianie! Użycie toUpperCase spowodowało zwrócenie nowego tekstu z wielkimi literami – oryginał (tzn. zmienna komunikat) się nie zmienił.

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:

Nazwa pliku: PobieranieDanychOdUzytkownika.java
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?

  1. Najpierw wypisany zostaje tekst "Prosze podac imie:".
  2. 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.
  3. 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):

Prosze podac imie: Przemek Witaj, Przemek! Prosze podac promien kola: 10 Pole kola o promieniu 10 wynosi: 314.0

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.

Zdefiniowana powyżej metoda getString pobiera od użytkownika pierwsze wpisane przez niego słowo – jeżeli wpiszemy w linii poleceń tekst np. Jan Nowak, to do naszego programu zwrócone zostanie jedynie pierwsze słowo, czyli "Jan".

Dodaj komentarz

Twój adres email nie zostanie opublikowany.