Jak uzyskać dane wejściowe od użytkownika w Javie (z obrazami)

Spisu treści:

Jak uzyskać dane wejściowe od użytkownika w Javie (z obrazami)
Jak uzyskać dane wejściowe od użytkownika w Javie (z obrazami)

Wideo: Jak uzyskać dane wejściowe od użytkownika w Javie (z obrazami)

Wideo: Jak uzyskać dane wejściowe od użytkownika w Javie (z obrazami)
Wideo: Plague Inc: The Cure - Prion Mega-Brutal Guide 2024, Może
Anonim

Podczas programowania w Javie lub dowolnym innym języku najprawdopodobniej będziesz musiał użyć informacji wejściowych od użytkownika. Java udostępnia wiele różnych metod uzyskiwania informacji o użytkowniku, ale najbardziej powszechną i być może najłatwiejszą do zaimplementowania metodą jest użycie obiektu Scanner.

Kroki

Metoda 1 z 2: Filmy

1514756 1
1514756 1

Krok 1. Zaimportuj klasę Scanner

Możesz wybrać importowanie

java.util. Scanner

klasa lub cała

java.util

pakiet. Aby zaimportować klasę lub pakiet, dodaj jeden z następujących wierszy na samym początku kodu:

    importować java.util. Scanner; // Spowoduje to zaimportowanie tylko klasy Scanner. import java.util.*; // Spowoduje to zaimportowanie całego pakietu java.util.

1514756 2
1514756 2

Krok 2. Zainicjuj nowy obiekt Skanera, przekazując

System.in

strumień wejściowy do konstruktora.

System.in

to standardowy strumień wejściowy, który jest już otwarty i gotowy do dostarczania danych wejściowych. Zazwyczaj ten strumień odpowiada wprowadzaniu z klawiatury.

    Skaner userInputScanner = nowy skaner(System.in);

1514756 3
1514756 3

Krok 3. Przeczytaj różne rodzaje danych wejściowych, które wprowadza użytkownik

Klasa Scanner wspiera pobieranie prymitywów, takich jak int, byte, short, long oraz ciągów znaków.

  • Oto kilka metod dostępnych w klasie Scanner:

    • Przeczytaj bajt -

      następny bajt()

    • Przeczytaj krótki -

      następnyKrótki()

    • Przeczytaj int -

      następnyInt()

    • Przeczytaj długo -

      następnyDługi()

    • Przeczytaj pływak -

      następnyFloat()

    • Przeczytaj podwójne -

      następnyPodwójny()

    • Przeczytaj wartość logiczną -

      następnaBoolean()

    • Przeczytaj całą linię -

      następnaLinia()

    • Przeczytaj słowo -

      Następny()

  • Oto przykład programu, który używa różnych metod klasy Scanner w celu uzyskania różnych typów danych wejściowych:

      importować java.util. Scanner; public class ScannerExample { public static void main(String args) { // Zainicjuj nowy skaner userInputScanner = new Scanner(System.in); // Testowanie nextLine(); System.out.println("\nJak masz na imię? "); Nazwa ciągu = userInputScanner.nextLine(); // Testowanie nextInt(); System.out.print("Ile masz kotów? "); int liczbaKotów = userInputScanner.nextInt(); // Testowanie nextDouble(); System.out.print("Ile pieniędzy masz w portfelu? $"); double moneyInWallet = userInputScanner.nextDouble(); System.out.println("\nHello " + name + "! Masz w portfelu " + numberOfCats + (numberOfCats > 1 ? " cats": " cat") + " i $" + moneyInWallet + ".\n"); } }

Metoda 2 z 2: Obsługa wyjątków

1514756 4
1514756 4

Krok 1. Obsługa wyjątków wejściowych

jakiś

InputMismatchException

jest generowany, gdy użytkownik wprowadzi dane, które nie są zgodne z żądanym typem. Na przykład, jeśli użytkownik wprowadzi String, gdy zostanie poproszony o int, program wyrzuci

InputMismatchException

i wyjdź. Istnieje kilka sposobów obsługi tego wyjątku i rozwiązania tego problemu, aby Twój program był niezawodny.

1514756 5
1514756 5

Krok 2. Użyj bloku try-catch, aby obsłużyć

InputMismatchException

.

    import java.util. InputMismatchException; importować java.util. Scanner; public class ScannerExample { public static void main(String args) { // Zainicjuj nowy skaner userInputScanner = new Scanner(System.in); // Testowanie nextLine(); System.out.print("\nJak masz na imię? "); Nazwa ciągu = userInputScanner.nextLine(); // Testowanie nextInt(); wartość logiczna prawidłowe wejście = fałsz; int liczbaKotów = 0; while (!validInput) { System.out.print("Ile masz kotów? "); spróbuj { liczbaKotów = userInputScanner.nextInt(); prawidłowe wejście = prawda; } catch (InputMismatchException e) { validInput = false; userInputScanner.nextLine(); } } // Testowanie nextDouble(); prawidłowe wejście = fałsz; podwójne pieniądze w portfelu = 0,0; while (!validInput) { System.out.print("Ile pieniędzy masz w portfelu? $"); spróbuj { moneyInWallet = userInputScanner.nextDouble(); userInputScanner.nextLine(); prawidłowe wejście = prawda; } catch (InputMismatchException e) { validInput = false; userInputScanner.nextLine(); } } System.out.println("\nHello " + name + "! Masz w portfelu " + numberOfCats + (numberOfCats > 1 ? " cats": "cat") + " i $" + moneyInWallet + ".\ n"); } }

  • Pamiętaj, że musimy importować

    java.util. InputMismatchException

    w celu korzystania z

    InputMismatchException

  • klasa.
  • Używamy pętli while, aby zadać użytkownikowi to samo pytanie, dopóki użytkownik nie wprowadzi poprawnych danych wejściowych.
  • Dodawanie

    userInputScanner.nextLine();

  • w części catch try-catch zapewnia, że skaner potwierdza naciśnięcie klawisza „enter” przez użytkownika i działa jako sposób na wyczyszczenie bufora wejściowego.
1514756 6
1514756 6

Krok 3. Ewentualnie spraw, aby dane wejściowe użytkownika były niezawodne, pobierając tylko kolejne wiersze ze skanera

W ten sposób możemy zapewnić, że wszystko, co zwróci Scanner, będzie obiektem typu String i nie stworzy żadnych wyjątków. Następnie, aby przekonwertować łańcuchy na liczby całkowite lub podwójne, możemy użyć klas opakowujących Integer i Double.

    importować java.util. Scanner; public class ScannerExample { public static void main(String args) { // Zainicjuj nowy skaner userInputScanner = new Scanner(System.in); // Testowanie nextLine(); System.out.print("\nJak masz na imię? "); Nazwa ciągu = userInputScanner.nextLine(); // Testowanie nextInt(); wartość logiczna prawidłowe wejście = fałsz; int liczbaKotów = 0; while (!validInput) { System.out.print("Ile masz kotów? "); Ciąg wejściowy = userInputScanner.nextLine(); spróbuj { liczbaKotów = Integer.parseInt(wejście); prawidłowe wejście = prawda; } catch (NumberFormatException e) { validInput = false; } } // Testowanie nextDouble(); prawidłowe wejście = fałsz; podwójne pieniądze w portfelu = 0,0; while (!validInput) { System.out.print("Ile pieniędzy masz w portfelu? $"); Ciąg wejściowy = userInputScanner.nextLine(); spróbuj { moneyInWallet = Double.parseDouble(input); prawidłowe wejście = prawda; } catch (NumberFormatException e) { validInput = false; } } System.out.println("\nHello " + name + "! Masz w portfelu " + numberOfCats + (numberOfCats > 1 ? " cats": "cat") + " i $" + moneyInWallet + ".\ n"); } }

  • Zauważ, że tutaj nie musieliśmy importować

    NumberFormatException

  • class, ponieważ jest częścią pakietu java.lang, co oznacza, że jest wbudowany.
  • Nie musieliśmy też czyścić bufora za pomocą

    userInputScanner.nextLine();

  • w części połowu try-catch.

Porady

  • Więcej informacji na temat korzystania z klasy Scanner znajdziesz w interfejsie Scanner API.
  • Zawsze używaj.next() zamiast.nextLine() do czytania następnego słowa, ponieważ.nextLine() może być błędna.

Zalecana: