0Pricing
Java Academy · Ders

Kullanıcı Girdisini Doğrulama

Geçersiz girdiyi uygun biçimde ele alın

Kullanıcı Girdisini Doğrulama, CoddyKit'te ücretsiz bir Java Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Java Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Java Academy kursu toplamda 4 dersten oluşur.

Girdiye Asla Güvenmeyin

Kullanıcılar yanlış şeyler yazabilir: sayı beklenen yerlere harfler, boşluklar veya aralık dışı değerler girebilir. Sağlam programlar girdiyi doğrular ve çökme yerine yeniden ister.

Bu derste Scanner ile kontrollü doğrulama yaklaşımları gösterilmektedir.

Okumadan Önce Kontrol Edin

En basit kontrol hasNextInt() yöntemidir. Tamsayıyı yalnızca gerçekten mevcut olduğunda okuyun.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner("42");
        if (scanner.hasNextInt()) {
            System.out.println("Got: " + scanner.nextInt());
        } else {
            System.out.println("Please enter a number");
        }
        scanner.close();
    }
}

Geçerli Olana Kadar Döngü

Yeniden deneme döngüsü, geçerli bir tamsayı gelene kadar istemeyi sürdürür. Belirteç yanlış olduğunda next() ile onu atıp devam edin.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner("abc xyz 50");
        int value = -1;
        while (scanner.hasNext()) {
            if (scanner.hasNextInt()) {
                value = scanner.nextInt();
                break;
            }
            scanner.next();
        }
        System.out.println("Accepted: " + value);
        scanner.close();
    }
}

Aralık Kontrolü

Türün yanı sıra değerlerin de çoğu zaman belirli bir aralıkta olması gerekir. Sayıyı okuyun, ardından kabul etmeden önce doğrulayın.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner("7");
        int n = scanner.nextInt();
        if (n >= 1 && n <= 10) {
            System.out.println("Valid: " + n);
        } else {
            System.out.println("Out of range");
        }
        scanner.close();
    }
}

Ayrıştırmada İstisna Yakalama

Başka bir yaklaşım, satırın tamamını okuyup ardından ayrıştırır ve geçersiz metin için NumberFormatException yakalar. Bu, arabelleği basit tutar.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner("notanumber");
        String line = scanner.nextLine();
        try {
            int n = Integer.parseInt(line.trim());
            System.out.println("Parsed: " + n);
        } catch (NumberFormatException e) {
            System.out.println("Invalid number: " + line);
        }
        scanner.close();
    }
}

Boş Olmayan Metni Doğrulama

Metin girdilerinde boş değerleri reddedin. isBlank(), boş veya yalnızca boşluk karakterlerinden oluşan dizeler için true döndürür.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner("   ");
        String name = scanner.nextLine();
        if (name.isBlank()) {
            System.out.println("Name cannot be empty");
        } else {
            System.out.println("Hello, " + name);
        }
        scanner.close();
    }
}

Bir Seçimi Doğrulama

Menü seçimlerinde, işlem yapmadan önce değerin izin verilen seçeneklerden biri olduğunu doğrulayın.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner("y");
        String choice = scanner.next().toLowerCase();
        if (choice.equals("y") || choice.equals("n")) {
            System.out.println("You chose: " + choice);
        } else {
            System.out.println("Please enter y or n");
        }
        scanner.close();
    }
}

Yeniden Kullanılabilir Bir Doğrulama Yöntemi

Doğrulamayı bir yönteme ayırarak mantığın yeniden kullanılmasını sağlayın. Burada bir yöntem, yaşın makul bir aralıkta olup olmadığını kontrol eder.

public class Main {
    static boolean isValidAge(int age) {
        return age >= 0 && age <= 120;
    }

    public static void main(String[] args) {
        System.out.println(isValidAge(30));
        System.out.println(isValidAge(-5));
    }
}

Türü ve Aralığı Birleştirme

Gerçek doğrulama çoğu zaman tür kontrolünü, aralık kontrolünü ve yeniden deneme döngüsünü tek bir sağlam yordamda birleştirir.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner("abc 200 45");
        int valid = -1;
        while (scanner.hasNext()) {
            if (scanner.hasNextInt()) {
                int n = scanner.nextInt();
                if (n >= 1 && n <= 100) {
                    valid = n;
                    break;
                }
            } else {
                scanner.next();
            }
        }
        System.out.println("Final: " + valid);
        scanner.close();
    }
}

Açık Hata İletileri

İyi doğrulama, kullanıcıya yararlı geri bildirimler de verir. Genel bir başarısızlık iletisi yerine, tam olarak neyin yanlış olduğunu ve ne beklendiğini söyleyin.

public class Main {
    static String validate(String input) {
        if (input.isBlank()) return "Input is empty";
        if (!input.matches("\\d+")) return "Only digits allowed";
        return "OK";
    }

    public static void main(String[] args) {
        System.out.println(validate(""));
        System.out.println(validate("12a"));
        System.out.println(validate("123"));
    }
}

Doğrulama Stratejisi

Türü hasNext ailesiyle veya istisna yakalama kullanarak kontrol edin, aralığı ve boş olup olmadığını denetleyin, geçerli olana kadar döngüyü sürdürün ve hataları her zaman açıkça açıklayın.

Hızlı Kontrol

Girdi doğrulama bilginizi sınayın.

Özet

Girdiyi kontrollü biçimde doğrulamayı öğrendiniz:

  • hasNextInt ile kontrol edin veya bir istisna yakalama bloğu içinde ayrıştırın
  • Yeniden deneme döngüleri kullanın ve hatalı belirteçleri next() ile atın
  • Aralıkları kontrol edin ve boş metinleri isBlank ile reddedin
  • Yeniden kullanılabilir doğrulama yöntemlerini ayırın
  • Açık ve belirli hata iletileri verin

Sıkça Sorulan Sorular

“Kullanıcı Girdisini Doğrulama” dersi ücretsiz mi?

Evet — “Kullanıcı Girdisini Doğrulama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Java Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Java Academy kursu toplamda 4 dersten oluşur.

“Kullanıcı Girdisini Doğrulama” dersinde ne öğreneceğim?

Geçersiz girdiyi uygun biçimde ele alın Java Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Java Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Java Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Kullanıcı Girdisini Doğrulama” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Java Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Java Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Scanner ile Girdi Okuma
  2. Sayıları ve Satırları Okuma
  3. Kullanıcı Girdisini Doğrulama
  4. BufferedReader Alternatifi
← Java Academy Sayfasına Dön