SCANNER SINIFI
VE KLAVYEDEN VERİ OKUNMASI
Dr.Galip Aydın
Java Kütüphaneleri
Java’da kütüphaneler paket olarak adlandırılır
Paket belirli bir mantıksal çerçeveye göre biaraya getirilmiş
sınıflardan oluşur ve bu sınıflara erişim kolaylığı sağlar.
Herhangi sınıfı kullanabilmek için o sınıfın ait olduğu paketi
import kullanarak ithal etmek gerekir.
java.lang paketi içerisindeki sınıflar otomatik olarak
import edilirler
import java.util.Scanner;
// sadece Scanner sınıfını import eder
import java.util.*;
// java.util paketindeki bütün sınıfları
import eder
(*) kullanmak yerine belirli bir sınıfı import etmek daha doğrudur.
Scanner Sınıfı ile Konsol Girişi
Scanner kullanıcıdan veya başka kaynaklardan giriş
almak için kullanılır.
Java 1.5 versiyonundan sonra
Scanner java.util paketi içinde olduğundan
kullanabilmek için bu paketi import etmek gerekir
import java.util.Scanner
Bu komut Java’ya
Scanner sınıfını kullanıma hazır hale getirmesini
Scanner sınıfını java.util paketinde bulmasını anlatır
Scanner nesnesi
Scanner nesnesi farklı kurucu metodlar kullanılarak
oluşturulabilir:
Scanner(File kaynakDosya)
Belirtilen kaynak dosyadan değerleri okuyabilecek bir Scanner
nesnesi oluşturur.
Scanner(InputStream kaynak)
Scanner(Readable source)
Scanner(String kaynakString)
Belirtilen Stringden değerleri okuyabilecek bir Scanner nesnesi
oluşturur.
Scanner sınıfı ile kullanıcı girişi
Scanner kullanarak klavyeden giriş almak için
System.in InputStream kaynağı kullanılır
System.in değişkeni:
Standart
input stream – klavye
Scanner Sınıfı ile kullanımı
Scanner klavye = new Scanner (System.in);
Scanner sınıfı ve stdin
klavye : Scanner
- kaynak=
- ...
+ nextInt() : int
+ ...
Klavye değişkeni Scanner sınıfına
Standart Input Stream erişimi verir
Bu Scanner sınıfının girişi
Klavye olarak verilmiş olur
Scanner sınıfı yüksek seviyede text girişine
6
İmkan verir
Klavyeden giriş
nextInt metodu klavyeden bir adet int değer
okumak ve bir değişkene atamak için kullanılır :
int ogrenciSayısı = klavye.nextInt();
nextDouble metodu klavyeden bir adet double
değer okumak ve bir değişkene atamak için kullanılır
double maas = klavye.nextDouble();
Birden fazla giriş için girilen değerler boşluklarla
ayrılmalı ve uygun metod kullanılarak okunmalıdır:
Boşluk karakteri olarak boşluk, tab, yeni satır karakterleri
kullanılabilir
Scanner ile String okuma
next metodu boşluklarla ayrılmış karakterleri
okumak ve String değişkenlerine atamak için kullanılır:
Aşağıdaki komutlar
String kelime1 = klavye.next();
String kelime2 = klavye.next();
giriş olarak
Kuru fasulye
verilince,
kelime1 değişkenine Kuru,
kelime2 değişkenine fasulye,
değerlerini atar
Scanner ile Satır okuma
nextLine metodu klavyeden girilen satırın
tamamını okur
String satir = keyboard.nextLine();
komutu satırı girilen satırın tamamını satir
değişkenine atar
Satırın sonu '\n' karakterleri ile belirtilir
Bu karakterler Enter tuşuna basılınca okunur
Ekranda üst satırdan alt satıra geçilerek gösterilir
nextLine komutu bir satır okuyunca '\n'
karakterini de okur, dolayısıyla bir sonraki giriş
sonraki satırdan başlar
Ancak, '\n' karakteri atanan String değerinin parçası
olarak algılanmaz (yani t satır değişkenine atanan
değer '\n' karakteri ile sona ermez)
Scanner metodları
public Scanner(InputStream in)
// Scanner(): constructor for reading from
a InputStream
public Scanner(File f)
// Scanner(): constructor to read from a
file object
public Scanner(String s)
// Scanner(): constructor to scan from a string
public int nextInt()
// nextInt(): next input value as an int
public short nextShort()
// nextShort(): next input value as a short
public long nextLong()
// nextLong(): next input value as a long
public double nextDouble()
// nextDouble(): next next input value as a double
public float nextFloat()
// nextFloat(): next next input value as a float
public String next()
// next(): get next whitespace-free string
public String nextLine()
// nextLine(): return contents of input line buffer
public boolean hasNext()
// hasNext(): is there a value to next
import java.util.*;
public class Matematik {
public static void main(String[] args) {
// Scanner nesnesini olustur
Scanner klavye = new Scanner(System.in);
// kullanıcıdan x ve y degerlerini al
System.out.print(“Double bir sayı giriniz: ");
double x = klavye.nextDouble();
System.out.print(“Baska bir Double sayı giriniz: ");
double y = klavye.nextDouble();
double KareKokX = Math.sqrt(x);
System.out.println (“X=" + x + " in karekoku = "
+ KareKokX);
}
}