Podstawy skanowania - klasa Scanner

Klasa Scanner służy do odczytywania danych z wejścia takich jak klawiatura, wartość String czy też plik tekstowy. Myślę, że nikt nie powinien mieć problemów z poniższymi przykładami.


Spis treści

     1 Odczyt z klawiatury
     2 Odczyt ze zmiennej typu string
     3 Odczyt z pliku tekstowego
     4 Najczęściej używane metody klasy Scanner



Odczyt z klawiatury


// Dołączamy bibliotekę java.util w której znajduje się klasa Scanner.
import java.util.*;

public class Main
{
    public static void main(String[] args)
    {
            /* Deklarujemy nasz skaner, odczytujemy dane z standardowego wejścia, domyślnie jest to klawiatura */
        Scanner klawiatura = new Scanner(System.in);
            /* Poniżej właśnie pobieramy zmienną z klawiatury, program oczekuje w tym wypadku  na wpisanie w konsoli wartości typu Integer */
        Int a = klawiatura.nextInt();
        System.out.print(a);
    }
}


Powyższy program oczekuje na wpisanie liczby całkowitej w konsoli, po czym po prostu ją wyświetla.

Odczyt ze zmiennej typu string


import java.util.*;

public class Main
{
    public static void main(String[] args)
    {
            Double d;
            String dane = "10,4 2,22  3,14 11,9956";
        Scanner skaner = new Scanner(dane);
                   /* W tym wypadku wykonujemy tak długo pętlę dopóki będzie trafiać na wartości Double ze skanera */
                  while(skaner.hasNextDouble()) {
                  d = skaner.nextDouble();
                  System.out.print(d + " ");
                  }
    }
}


W powyższy przykładzie zadeklarowaliśmy zmienną String w której umieściliśmy kilka wartości typu Double, program najpierw sprawdza, czy jest dostępna następna wartość typu Double, jeżeli tak to ją wypisuje i zaczyna od nowa wykonywać pętlę, jeżeli pętla zwróci wartość false program zakończy swoje działanie.

Odczyt z pliku tekstowego


import java.util.*;
import java.io.*;

public class Main
{
    public static void main(String[] args) throws IOException
    {
            String s;
    FileReader fr = new FileReader("dane.txt");
        Scanner plik = new Scanner(fr);
                                  /* W tym wypadku pętla się wykonuje dopóki trafia na dowolną wartość */
                  while(plik.hasNext()) {
                  s= plik.next();
                  System.out.print(s + " ");
                  }
    }
}


W powyższym przykładzie tworzymy obiekt typu FileReaderw którym jak parametr podajemy nazwę pliku tekstowego, na którym będziemy operować. Jak widać program działa podobnie jak w przykładzie drugim, lecz tutaj operujemy na pliku oraz wykonujemy pętlę dopóki odczytamy ostatnią dowolną wartość.

Najczęściej używane metody klasy Scanner


boolean hasNext() - zwraca wartość True jeśli następna wartość dowolnego typu jest dostępny do odczytu.
string next() - zwraca odczytaną następną wartość dowolnego typu.
boolean hasNextInt() - zwraca wartość True jeśli następna wartość jest typu Integer.
int nextInt() - zwraca następną odczytaną wartość typu int.
boolean hasNextDouble() - zwraca wartość True jeśli następna wartość jest typu Double.
double nextDouble() - zwraca następną odczytaną wartość typu Double.

Jak widać w powyższych metodach, tylko dla wartości typu String zapis się różni, w innych przypadkach po prostu dodajemy na końcu metody hasNext oraz next typ zmiennej której chcemy wczytać.
Informacje
Ostatnia modyfikacja 18-09-2009 16:17 Ostatni autor Demonical Monk
Ilość wyświetleń 2325 Wersja 5
Komentarz

Copyright © 2000-2006 by Coyote Group 0.9.3-pre3
Czas generowania strony: 0.0701 sek. (zapytań SQL: 9)