Scanner
- Java kursu
- Başlangıç
- Ders 94/116
- 4 dk
Scanner ile kullanıcıdan girdi almayı öğrenirsin.
Scanner: konsol girdisi
Java'da konsoldan girdi almak için Scanner sınıfı kullanılır. Önce java.util.Scanner paketini içe aktarır, sonra System.in kaynağına bağlarsın.
import java.util.Scanner;
Scanner input = new Scanner(System.in);
String name = input.nextLine();
System.out.println("Merhaba " + name);Scanner metin ve sayıları satır satır ya da boşlukla ayrılmış parçalar halinde okuyabilir. Kullanıcıdan bilgi alırken önce bir bilgi isteme metni yazdırmak iyi bir alışkanlıktır; böylece kullanıcı ne girmesi gerektiğini bilir. İşin bitince close() ile kaynağı serbest bırakırsın.
close ile kaynağı serbest bırak
Scanner bir kaynağı sarmalar; işin bitince close() çağrısı kaynağı serbest bırakır. Küçük konsol programlarında bu kritik değildir, ama dosya okurken önemlidir.
Scanner input = new Scanner(System.in);
String line = input.nextLine();
System.out.println(line);
input.close();Konsol girdisinde close() çağrısı System.in'i de kapatır; aynı programda tekrar okuma yapılamaz. Bu yüzden konsol programlarında kapatmayı sona bırakmak yaygındır. Dosya okurken ise kaynağı hemen kapatmak bellek sızıntısını önler.
Uygulama Kullanıcıyı selamla
Bir Scanner oluştur, kullanıcıdan adını al ve Merhaba, <ad> biçiminde selamla. Kullanıcı Ayşe yazacak.
Başlangıç kodu
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// Scanner oluştur, adı al ve selamla
}
}Örnek çözüm
Scanner input = new Scanner(System.in);
System.out.print("Ad: ");
String name = input.nextLine();
System.out.println("Merhaba, " + name);Beklenen çıktı
Ad: Merhaba, Ayşe
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Scanner kullanmak için hangi içe aktarma gerekli?
- import java.io.Scanner;
- import java.lang.Scanner;
- import java.util.Scanner; Doğru cevap
- import java.net.Scanner;
Açıklama: Scanner sınıfı java.util paketindedir, bu yüzden java.util.Scanner içe aktarılır.
2 Scanner yöntemini amacıyla eşleştir
| Kavram | Anlamı |
|---|---|
nextLine() |
Tüm satırı okur |
nextInt() |
Tam sayı okur |
close() |
Kaynağı kapatır |
new Scanner(System.in) |
Konsola bağlar |
3 Scanner'i konsola bağla
Scanner input = new Scanner(System.____);
String name = input.nextLine();
Scanner input = new Scanner(System.in);
String name = input.nextLine();
Açıklama: System.in standart girdi akışıdır (klavye).