Java'da Bir Kullanıcıdan Nasıl Girdi Alınır (Resimlerle)

İçindekiler:

Java'da Bir Kullanıcıdan Nasıl Girdi Alınır (Resimlerle)
Java'da Bir Kullanıcıdan Nasıl Girdi Alınır (Resimlerle)

Video: Java'da Bir Kullanıcıdan Nasıl Girdi Alınır (Resimlerle)

Video: Java'da Bir Kullanıcıdan Nasıl Girdi Alınır (Resimlerle)
Video: A ORIGEM E A QUEDA DOS GIGANTES 2024, Mayıs
Anonim

Java veya başka bir dilde programlama yaparken, büyük olasılıkla bir kullanıcıdan gelen girdi bilgilerini kullanmanız gerekecektir. Java, kullanıcı bilgilerini almak için birçok farklı yöntem sunar, ancak en yaygın ve belki de uygulanması en kolay yöntem, Tarayıcı nesnesini kullanmaktır.

adımlar

Yöntem 1/2: Videolar

1514756 1
1514756 1

Adım 1. Tarayıcı sınıfını içe aktarın

ya da içe aktarmayı seçebilirsiniz.

java.util. Tarayıcı

sınıf veya tüm

java.util

paket. Bir sınıfı veya paketi içe aktarmak için kodunuzun en başına aşağıdaki satırlardan birini ekleyin:

    java.util. Scanner'ı içe aktarın; // Bu, yalnızca Scanner sınıfını içe aktaracaktır. java.util.* dosyasını içe aktarın; // Bu, tüm Java.util paketini içe aktaracaktır.

1514756 2
1514756 2

Adım 2. Aşağıdakileri geçerek yeni bir Tarayıcı nesnesini başlatın

System.in

yapıcıya giriş akışı.

System.in

zaten açık ve giriş verilerini sağlamaya hazır standart giriş akışıdır. Tipik olarak bu akış, klavye girişine karşılık gelir.

    Tarayıcı userInputScanner = new Tarayıcı(System.in);

1514756 3
1514756 3

Adım 3. Kullanıcının girdiği farklı türdeki girdi verilerini okuyun

Scanner sınıfı, string almanın yanı sıra int, byte, short, long gibi temel öğelerin alınmasını da destekler.

  • Scanner sınıfı aracılığıyla kullanılabilen bazı yöntemler şunlardır:

    • Bir bayt oku -

      sonrakiByte()

    • Kısa bir oku -

      sonrakiKısa()

    • Bir int oku -

      sonrakiInt()

    • Birlikte okumak -

      sonrakiUzun()

    • Bir şamandıra oku -

      sonrakiFloat()

    • Bir çift oku -

      sonrakiÇift()

    • Bir boole oku -

      sonrakiBoolean()

    • Tam bir satır okuyun -

      Sonraki satır()

    • Bir kelime oku -

      sonraki()

  • Aşağıda, farklı girdi türleri elde etmek için Scanner sınıfının farklı yöntemlerini kullanan bir program örneği verilmiştir:

      java.util. Scanner'ı içe aktarın; public class ScannerExample { public static void main(String args) { // Yeni bir Tarayıcı Tarayıcı başlat userInputScanner = new Scanner(System.in); // nextLine() testi; System.out.println("\nAdın ne? "); Dize adı = userInputScanner.nextLine(); // nextInt() test ediliyor; System.out.print("Kaç kediniz var?"); int numberOfCats = userInputScanner.nextInt(); // nextDouble() testi; System.out.print("Cüzdanınızda ne kadar para var? $"); double moneyInWallet = userInputScanner.nextDouble(); System.out.println("\nHello " + name + "! Cüzdanınızda " + NumberOfCats + (numberOfCats > 1 ? " cat": " cat") + " ve $" + moneyInWallet + " var.\n"); } }

Yöntem 2/2: Özel Durumları İşleme

1514756 4
1514756 4

Adım 1. Giriş istisnalarını ele alın

Bir

InputMismatchException

kullanıcı istenen türle eşleşmeyen verileri girdiğinde atılır. Örneğin, kullanıcı bir int istendiğinde bir String girerse, program bir

InputMismatchException

ve çıkış. Bu istisnayı ele almanın ve bu sorunu çözmenin birkaç yolu vardır, böylece programınız kusursuz olabilir.

1514756 5
1514756 5

Adım 2. Aşağıdakileri işlemek için bir try-catch bloğu kullanın.

InputMismatchException

.

    java.util. InputMismatchException'ı içe aktarın; java.util. Scanner'ı içe aktarın; public class ScannerExample { public static void main(String args) { // Yeni bir Tarayıcı Tarayıcı başlat userInputScanner = new Scanner(System.in); // nextLine() testi; System.out.print("\nAdın ne? "); Dize adı = userInputScanner.nextLine(); // nextInt() test ediliyor; boolean validInput = false; int kedi sayısı = 0; while (!validInput) { System.out.print("Kaç kediniz var?"); deneyin { numberOfCats = userInputScanner.nextInt(); validInput = doğru; } yakalama (InputMismatchException e) { validInput = false; userInputScanner.nextLine(); } } // nextDouble() testi; validInput = yanlış; çift paraInWallet = 0.0; while (!validInput) { System.out.print("Cüzdanınızda ne kadar para var? $"); deneyin { moneyInWallet = userInputScanner.nextDouble(); userInputScanner.nextLine(); validInput = doğru; } yakalama (InputMismatchException e) { validInput = false; userInputScanner.nextLine(); } } System.out.println("\nMerhaba " + isim + "! Cüzdanınızda " + numberOfCats + (numberOfCats > 1 ? " cat": "cat") + " ve $" + moneyInWallet + " var.\ n"); } }

  • İthalat yapmamız gerektiğini unutmayın

    java.util. InputMismatchException

    kullanmak için

    InputMismatchException

  • sınıf.
  • Kullanıcı doğru girişi girene kadar kullanıcıya aynı soruyu sormak için bir while döngüsü kullanıyoruz.
  • Ekleme

    userInputScanner.nextLine();

  • try-catch'in yakalama kısmında, Tarayıcının kullanıcıdan "enter" tuşuna basıldığını onaylamasını ve giriş arabelleğini temizlemenin bir yolu olarak işlev görmesini sağlar.
1514756 6
1514756 6

Adım 3. Alternatif olarak, yalnızca Tarayıcıdan sonraki satırları alarak kullanıcı girişini kusursuz hale getirin

Bu şekilde, Tarayıcının döndürdüğü her şeyin bir String nesnesi olduğundan ve herhangi bir istisna oluşturmayacağından emin olabiliriz. Ardından, dizeleri tamsayılara veya çiftlere dönüştürmek için Tamsayı ve Çift sarmalayıcı sınıflarını kullanabiliriz.

    java.util. Scanner'ı içe aktarın; public class ScannerExample { public static void main(String args) { // Yeni bir Tarayıcı Tarayıcı başlat userInputScanner = new Scanner(System.in); // nextLine() testi; System.out.print("\nAdın ne? "); Dize adı = userInputScanner.nextLine(); // nextInt() test ediliyor; boolean validInput = false; int kedi sayısı = 0; while (!validInput) { System.out.print("Kaç kediniz var?"); Dize girişi = userInputScanner.nextLine(); deneyin { numberOfCats = Integer.parseInt(input); validInput = doğru; } catch (NumberFormatException e) { validInput = false; } } // nextDouble() testi; validInput = yanlış; çift paraInWallet = 0.0; while (!validInput) { System.out.print("Cüzdanınızda ne kadar para var? $"); Dize girişi = userInputScanner.nextLine(); try { moneyInWallet = Double.parseDouble(input); validInput = doğru; } catch (NumberFormatException e) { validInput = false; } } System.out.println("\nMerhaba " + isim + "! Cüzdanınızda " + numberOfCats + (numberOfCats > 1 ? " cat": "cat") + " ve $" + moneyInWallet + " var.\ n"); } }

  • Burada içe aktarmamız gerekmediğine dikkat edin.

    NumberFormatException

  • Java.lang paketinin bir parçası olduğundan, yerleşik olarak geldiği anlamına gelir.
  • Ayrıca kullanarak arabelleği temizlememiz gerekmedi.

    userInputScanner.nextLine();

  • try-catch'in yakalama kısmında.

İpuçları

  • Tarayıcı sınıfını kullanma hakkında daha fazla bilgi için Tarayıcı API'sine bakın.
  • Sonraki kelimeyi okumak için her zaman.nextLine() yerine.next() kullanın, çünkü.nextLine() hatalı olabilir.

Önerilen: