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