Scanner sınıfı

advertisement
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);
}
}
Download