22.03.2011 Programlamaya Giriş Scanner Sınıfı ve Veri Okunması Java Kütüphaneleri Java’da kütüphaneler paket olarak adlandırılır Paket belirli bir mantıksal çerçeveye göre bir araya 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. 1 22.03.2011 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 sınıfını kullanıma hazır hale getirmesini Scanner sınıfını java.util paketinde bulmasını anlatır Scanner 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. 2 22.03.2011 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 3 22.03.2011 Klavyeden giriş metodu klavyeden bir adet int değer okumak ve bir değişkene atamak için kullanılır : nextInt int ogrenciSayısı = klavye.nextInt(); metodu klavyeden bir adet double değer okumak ve bir değişkene atamak için kullanılır nextDouble 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 metodu boşluklarla ayrılmış karakterleri okumak ve String değişkenlerine atamak için kullanılır: Aşağıdaki komutlar next 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 4 22.03.2011 Scanner ile Satır okuma metodu klavyeden girilen satırın tamamını okur nextLine 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 komutu bir satır okuyunca '\n' karakterini de okur, dolayısıyla bir sonraki giriş sonraki satırdan başlar nextLine 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) public Scanner(File f) public Scanner(String s) public int nextInt() public short nextShort() public long nextLong() public double nextDouble() double public float nextFloat() public String next() public String nextLine() public boolean hasNext() // Scanner(): constructor for reading from a InputStream // Scanner(): constructor to read from a file object // Scanner(): constructor to scan from a string // nextInt(): next input value as an int // nextShort(): next input value as a short // nextLong(): next input value as a long // nextDouble(): next next input value as a // nextFloat(): next next input value as a float // next(): get next whitespace-free string // nextLine(): return contents of input line buffer // hasNext(): is there a value to next 5 22.03.2011 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); } } package cember; import java.util.Scanner; public class cember { } public static void main(String[] args) { double pi=3.14,yaricap,cevre; Scanner oku= new Scanner(System.in); System.out.println("çemberin çevresini giriniz:"); yaricap=oku.nextDouble(); cevre=2*pi*yaricap; System.out.println("çemberin çevresi="+cevre); } 6 22.03.2011 package faktor; import java.util.Scanner; public class faktoriyel { public static void main(String[] args) { } double n, i,f; System.out.println("sayinizi giriniz"); Scanner oku = new Scanner(System.in); n = oku.nextDouble(); f=1; for (i=1;i<=n;i++) { f=f*i; } System.out.println("Faktöriyel sonucu:"+ f); } Java ve Java Teknolojileri Java Tutorials Kaynak: Dr. Galip AYDIN 7