Languages
[Edit]
PL

Java - Klasa Scanner dla początkujących

3 points
Created by:
Nikki
8420

W tym artykule, klasa Scanner skupia się na odczytywaniu danych z konsoli pobranych od użytkownika. Jest to jedna z podstawowych czynności, które także na samym początku nauki sprawiają, że pisane programy są dużo bardziej atrakcyjne i bardziej cieszą. W kilku przykładach poniżej znajduje się omówienie części składowych klasy Scanner oraz jej zastosowanie. 

Przykład 1

Załóżmy, że chcemy wczytać od użytkownika imię:

import java.util.Scanner;

public class Przyklad1 {

    public static void main(String[] args) {

//        *1      *2            *3    
        Scanner scan = new Scanner(System.in);
        System.out.println("Podaj swoje imię"); 

//       *4     *5        *6
        String imie = scan.next(); //np. Alex

        System.out.println("Witaj " + imie);
    }
}

/*
*1 - zmienna typu Scanner
*2 - nadanie nazwy
*3 - tworzenie obiektu typu Scanner
*4 - zmienna typu String
*5 - nazwa zmiennej
*6 - metoda przyjmująca dane od użytkownika, next() zwróci nam String
*/

Wynik

Podaj swoje imię
Alex
Witaj Alex

Uwaga: Należy pamiętać, że Scanner znajduje się w pakiecie o nazwie java.util., dlatego należy ją na początku zaimportować do swojej klasy. 

Przykład 2

Mamy za zadanie przyjąć od użytkownika imię, nazwisko oraz wiek.

Rozwiązanie

import java.util.Scanner;

public class Przyklad2 {

    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);
        System.out.println("Podaj swoje imię"); 
        String imie = scan.next(); //np.Alex

        System.out.println("Podaj swoje nazwisko"); 
        String nazwisko = scan.next(); //np.Black

        System.out.println("Podaj swój wiek"); 
        int wiek = scan.nextInt(); //np.22

        System.out.println("Witaj " + imie + " " + nazwisko + "!");
        System.out.println("Twój wiek to: " + wiek);
    }
}

Wynik:

Podaj swoje imię
Alex
Podaj swoje nazwisko
Black
Podaj swój wiek
22
Witaj Alex Black!
Twój wiek to: 22

Przykład 3

W tym przykładzie chciałabym pokazać dość powszechny problem, przy przyjmowaniu dłuższych informacji od użytkownika. Załóżmy, że mamy za zadanie wczytać od użytkownika jego ulubiony cytat/motto życiowe:

import java.util.Scanner;

public class Przyklad3 {

    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);
        System.out.println("Podaj swój ulubiony cytat"); 

        //np. The limits of my language are the limits of my world. 
        String cytat = scan.next();

        System.out.println("Twój ulubiony cytat: " + cytat);
    }
}

Wynik (z błędem):

Podaj swój ulubiony cytat
The limits of my language are the limits of my world. 
Twój ulubiony cytat: The

Problem polega na tym, że nasz program pobiera tylko i wyłącznie pierwsze słowo (do spacji). Reszty nie odczytuje. Jak to naprawić?

import java.util.Scanner;

public class Przyklad3 {

    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);
        System.out.println("Podaj swój ulubiony cytat");
        String cytat = scan.next();
        cytat += scan.nextLine(); //należy dodać, że pobieramy od użytkownika cały tekst

        System.out.println("Twój ulubiony cytat: " + cytat);
    }
}

Wynik (poprawny)

Podaj swój ulubiony cytat
The limits of my language are the limits of my world. 
Twój ulubiony cytat: The limits of my language are the limits of my world. 

 

Java dla początkujących

Native Advertising
🚀
Get your tech brand or product in front of software developers.
For more information Contact us
Dirask - friendly IT community for everyone.

❤️💻 🙂

Join