כיצד לקבל קלט ממשתמש ב- Java (עם תמונות)

תוכן עניינים:

כיצד לקבל קלט ממשתמש ב- Java (עם תמונות)
כיצד לקבל קלט ממשתמש ב- Java (עם תמונות)

וִידֵאוֹ: כיצד לקבל קלט ממשתמש ב- Java (עם תמונות)

וִידֵאוֹ: כיצד לקבל קלט ממשתמש ב- Java (עם תמונות)
וִידֵאוֹ: How to complete VIRUS on BRUTAL | Plague Inc| 2024, מאי
Anonim

בעת תכנות ב- Java או בכל שפה אחרת, סביר להניח שתצטרך להשתמש במידע קלט של משתמש. Java מספקת הרבה שיטות שונות להיכנס למידע על משתמשים, אך השיטה הנפוצה ביותר ואולי הקלה ביותר ליישום היא שימוש באובייקט הסורק.

צעדים

שיטה 1 מתוך 2: סרטונים

1514756 1
1514756 1

שלב 1. ייבא את מחלקת הסורק

אתה יכול לבחור לייבא את

java.util. Scanner

הכיתה או כולה

java.util

חֲבִילָה. כדי לייבא מחלקה או חבילה, הוסף אחת מהשורות הבאות לתחילת הקוד שלך:

    יבוא java.util. Scanner; // פעולה זו תייבא רק את מחלקת הסורקים. יבוא java.util.*; // פעולה זו תייבא את כל חבילת java.util.

1514756 2
1514756 2

שלב 2. אתחל אובייקט סורק חדש על ידי העברת ה-

System.in

זרם קלט לבנאי.

System.in

הוא זרם הקלט הסטנדרטי שכבר פתוח ומוכן לספק נתוני קלט. בדרך כלל זרם זה מתאים לקלט מקלדת.

    סורק userInputScanner = סורק חדש (System.in);

1514756 3
1514756 3

שלב 3. קרא סוגים שונים של נתוני קלט שהמשתמש מזין

כיתת הסורק תומכת בהשגת פרימיטיבים כגון int, byte, short, long בנוסף לקבלת מיתרים.

  • להלן מספר שיטות הזמינות באמצעות מחלקת הסורקים:

    • קרא בייט -

      nextByte ()

    • תקרא קצר -

      nextShort ()

    • קרא אינט -

      nextInt ()

    • לקרוא כל הדרך -

      nextLong ()

    • קראו מצוף -

      nextFloat ()

    • תקרא פעמיים -

      כפולה הבאה ()

    • קרא בוליאני -

      הבא בוליאני ()

    • קראו שורה שלמה -

      nextLine ()

    • תקרא מילה אחת -

      הַבָּא()

  • להלן דוגמה לתוכנית המשתמשת בשיטות שונות של מחלקת הסורק כדי לקבל סוגים שונים של קלט:

      יבוא java.util. Scanner; class public ScannerExample {public static void main (String args) {// ליזום סורק סורק חדש userInputScanner = סורק חדש (System.in); // Testing nextLine (); System.out.println ("\ n מה שמך?"); שם מחרוזת = userInputScanner.nextLine (); // Testing nextInt (); System.out.print ("כמה חתולים יש לך?"); int numberOfCats = userInputScanner.nextInt (); // בדיקת nextDouble (); System.out.print ("כמה כסף יש בארנק שלך? $"); moneyInWallet כפול = userInputScanner.nextDouble (); System.out.println ("\ n שלום" + שם + "! יש לך" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "ו- $" + moneyInWallet + "בארנק שלך. / N"); }}

שיטה 2 מתוך 2: טיפול בחריגים

1514756 4
1514756 4

שלב 1. לטפל בחריגות קלט

א

InputMismatchException

נזרק כאשר המשתמש מזין נתונים שאינם תואמים את הסוג המבוקש. לדוגמה, אם המשתמש נכנס למחרוזת כאשר מתבקשים int, התוכנית תזרק

InputMismatchException

ולצאת. ישנן מספר דרכים לטפל בחריג זה ולפתור בעיה זו, כך שהתוכנית שלך עשויה להיות חסינה.

1514756 5
1514756 5

שלב 2. השתמש בלוק נסה לתפוס את

InputMismatchException

.

    יבוא java.util. InputMismatchException; יבוא java.util. Scanner; class public ScannerExample {public static void main (String args) {// ליזום סורק סורק חדש userInputScanner = סורק חדש (System.in); // Testing nextLine (); System.out.print ("\ n מה שמך?"); שם מחרוזת = userInputScanner.nextLine (); // Testing nextInt (); boolean validInput = false; int numberOfCats = 0; while (! validInput) {System.out.print ("כמה חתולים יש לך?"); נסה {numberOfCats = userInputScanner.nextInt (); validInput = true; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }}} // בדיקת nextDouble (); validInput = false; moneyInWallet כפול = 0.0; while (! validInput) {System.out.print ("כמה כסף יש בארנק שלך? $"); נסה {moneyInWallet = userInputScanner.nextDouble (); userInputScanner.nextLine (); validInput = true; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} System.out.println ("\ n שלום + שם +"! יש לך " + numberOfCats + (numberOfCats> 1?" Cats ":" cat ") +" ו- $ " + moneyInWallet +" בארנק שלך. / n "); }}

  • שימו לב שעלינו לייבא

    java.util. InputMismatchException

    על מנת להשתמש ב

    InputMismatchException

  • מעמד.
  • אנו משתמשים בלולאת while כדי לשאול את אותה שאלה למשתמש עד שהמשתמש יזין את הקלט הנכון.
  • מוֹסִיף

    userInputScanner.nextLine ();

  • בחלק התפיסה של ה- try-catch מבטיח שהסורק יכיר בלחיצת המקשים "enter" מהמשתמש ומתפקד כדרך לנקות את מאגר הקלט.
1514756 6
1514756 6

שלב 3. לחלופין, הפוך את קלט המשתמש לאטום רק על ידי קליטת השורות הבאות מהסורק

כך נוכל להבטיח שכל מה שהסורק מחזיר הוא אובייקט מחרוזת ולא יוצר חריגים. לאחר מכן, כדי להמיר את המחרוזות למספרים שלמים או כפולים, נוכל להשתמש בכיתות שלם ועוטף כפול.

    יבוא java.util. Scanner; class public ScannerExample {public static void main (String args) {// ליזום סורק סורק חדש userInputScanner = סורק חדש (System.in); // Testing nextLine (); System.out.print ("\ n מה שמך?"); שם מחרוזת = userInputScanner.nextLine (); // Testing nextInt (); boolean validInput = false; int numberOfCats = 0; while (! validInput) {System.out.print ("כמה חתולים יש לך?"); קלט מחרוזת = userInputScanner.nextLine (); נסה {numberOfCats = Integer.parseInt (קלט); validInput = true; } catch (NumberFormatException e) {validInput = false; }}} // בדיקת nextDouble (); validInput = false; moneyInWallet כפול = 0.0; while (! validInput) {System.out.print ("כמה כסף יש בארנק שלך? $"); קלט מחרוזת = userInputScanner.nextLine (); נסה {moneyInWallet = Double.parseDouble (קלט); validInput = true; } catch (NumberFormatException e) {validInput = false; }} System.out.println ("\ n שלום + שם +"! יש לך " + numberOfCats + (numberOfCats> 1?" Cats ":" cat ") +" ו- $ " + moneyInWallet +" בארנק שלך. / n "); }}

  • שים לב שכאן לא היינו צריכים לייבא את

    NumberFormatException

  • class מכיוון שהיא חלק מחבילת java.lang, כלומר היא מובנית.
  • כמו כן, לא היינו צריכים לנקות את המאגר באמצעות

    userInputScanner.nextLine ();

  • בחלק התפיסה של הניסיונות לתפוס.

טיפים

  • עיין בממשק ה- API של הסורק למידע נוסף על השימוש במחלקה סורק.
  • השתמש תמיד ב-.next () במקום ב-.nextLine () כדי לקרוא את המילה הבאה, שכן.nextLine () יכול להיות באגי.

מוּמלָץ: