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:
hasNextIntile 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
isBlankile 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
- Scanner ile Girdi Okuma
- Sayıları ve Satırları Okuma
- Kullanıcı Girdisini Doğrulama
- BufferedReader Alternatifi