Hogyan lehet bevitelt szerezni a Java -tól (képekkel)

Tartalomjegyzék:

Hogyan lehet bevitelt szerezni a Java -tól (képekkel)
Hogyan lehet bevitelt szerezni a Java -tól (képekkel)

Videó: Hogyan lehet bevitelt szerezni a Java -tól (képekkel)

Videó: Hogyan lehet bevitelt szerezni a Java -tól (képekkel)
Videó: Bootcamp для подростков, шоковая терапия 2024, Lehet
Anonim

Java vagy más nyelv programozásakor nagy valószínűséggel a felhasználó által megadott adatokat kell használnia. A Java sokféle módszert kínál a felhasználói információk befogadására, de a legelterjedtebb és talán a legegyszerűbben megvalósítható módszer a Scanner objektum használata.

Lépések

1/2 módszer: Videók

1514756 1
1514756 1

1. lépés: Importálja a Scanner osztályt

Választhatja az importálást

java.util. Scanner

osztály vagy az egész

java.util

csomag. Osztály vagy csomag importálásához adja hozzá az alábbi sorok egyikét a kód elejéhez:

    import java.util. Scanner; // Ez csak a Scanner osztályt importálja. import java.util.*; // Ez importálja a teljes java.util csomagot.

1514756 2
1514756 2

Lépés 2. Inicializáljon egy új szkennerobjektumot a

System.in

bemeneti adatfolyamot a konstruktorhoz.

System.in

a szabványos bemeneti adatfolyam, amely már nyitva van és készen áll a bemeneti adatok szolgáltatására. Általában ez az adatfolyam a billentyűzet bemenetének felel meg.

    Szkenner userInputScanner = új szkenner (System.in);

1514756 3
1514756 3

3. lépés. Olvassa el a felhasználó által megadott különböző bemeneti adatokat

A Scanner osztály támogatja a primitívek, például int, byte, short, long megszerzését a karakterláncok beszerzése mellett.

  • Íme néhány módszer, amely a Scanner osztályon keresztül érhető el:

    • Bájt olvasása -

      nextByte ()

    • Olvass el röviden -

      nextShort ()

    • Olvasson egy int -

      nextInt ()

    • Olvass sokáig -

      nextLong ()

    • Úszó leolvasása -

      nextFloat ()

    • Olvass duplát -

      nextDouble ()

    • Boolean olvasása -

      nextBoolean ()

    • Olvasson el egy teljes sort -

      nextLine ()

    • Olvass el egy szót -

      következő()

  • Íme egy példa egy programra, amely a Scanner osztály különböző módszereit használja különböző típusú bemenetek beszerzésére:

      import java.util. Scanner; public class ScannerExample {public static void main (String args) {// Új Scanner Scanner kezdeményezése userInputScanner = new Scanner (System.in); // nextLine tesztelése (); System.out.println ("\ nMi a neved?"); Karakterlánc neve = userInputScanner.nextLine (); // tesztelés nextInt (); System.out.print ("Hány macskája van?"); int numberOfCats = userInputScanner.nextInt (); // tesztelés nextDouble (); System.out.print ("Mennyi pénz van a pénztárcájában? $"); dupla pénzInWallet = userInputScanner.nextDouble (); System.out.println ("\ nSzia" + név + "!" + NumberOfCats + (numberOfCats> 1? "Macskák:" macska ") +" és $ " + moneyInWallet +" van a pénztárcájában. / N "); }}

2/2. Módszer: Kivételek kezelése

1514756 4
1514756 4

1. lépés Kezelje a bemeneti kivételeket

An

InputMismatchException

dob, amikor a felhasználó olyan adatokat ír be, amelyek nem egyeznek a kért típussal. Például, ha a felhasználó egy karakterláncot ír be, amikor egy int -t kér, a program an

InputMismatchException

és kilépni. Ennek a kivételnek a kezelése és a probléma megoldása többféleképpen történhet, hogy a programja bolondbiztos legyen.

1514756 5
1514756 5

2. lépés. Használja a try-catch blokkot a

InputMismatchException

.

    import java.util. InputMismatchException; import java.util. Scanner; public class ScannerExample {public static void main (String args) {// Új Scanner Scanner kezdeményezése userInputScanner = new Scanner (System.in); // nextLine tesztelése (); System.out.print ("\ nMi a neved?"); Karakterlánc neve = userInputScanner.nextLine (); // tesztelés nextInt (); logikai érvényesInput = false; int numberOfCats = 0; while (! validInput) {System.out.print ("Hány macskád van?"); try {numberOfCats = userInputScanner.nextInt (); validInput = igaz; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} // tesztelés nextDouble (); validInput = hamis; dupla pénzInWallet = 0,0; while (! validInput) {System.out.print ("Mennyi pénz van a pénztárcájában? $"); try {moneyInWallet = userInputScanner.nextDouble (); userInputScanner.nextLine (); validInput = igaz; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} System.out.println ("\ nSzia" + név + "!" + NumberOfCats + (numberOfCats> 1? "Cicák": "macska") + "és $" + moneyInWallet + "van a pénztárcájában. / n "); }}

  • Vegye figyelembe, hogy importálnunk kell

    java.util. InputMismatchException

    a használatához

    InputMismatchException

  • osztály.
  • A while ciklus segítségével ugyanazt a kérdést tesszük fel a felhasználónak mindaddig, amíg a felhasználó be nem írja a megfelelő bemenetet.
  • Hozzáadás

    userInputScanner.nextLine ();

  • a kísérleti fogás fogási részében biztosítja, hogy a Szkenner nyugtázza a felhasználó "enter" gombnyomását, és a bemeneti puffer törlésének módjaként szolgál.
1514756 6
1514756 6

Lépés 3. Alternatív megoldásként tegye a felhasználó beviteli módját hibátlanná, ha csak a következő sorokat veszi be a szkennerből

Így biztosíthatjuk, hogy minden, amit a Szkenner visszaad, karakterlánc objektum, és nem hoz létre kivételeket. Ezután, hogy a karakterláncokat egész számokká vagy párosokká alakítsuk, használhatjuk az Integer és a Double wrapper osztályokat.

    import java.util. Scanner; public class ScannerExample {public static void main (String args) {// Új Scanner Scanner kezdeményezése userInputScanner = new Scanner (System.in); // nextLine tesztelése (); System.out.print ("\ nMi a neved?"); Karakterlánc neve = userInputScanner.nextLine (); // tesztelés nextInt (); logikai érvényesInput = false; int numberOfCats = 0; while (! validInput) {System.out.print ("Hány macskád van?"); String input = userInputScanner.nextLine (); try {numberOfCats = Integer.parseInt (input); validInput = igaz; } catch (NumberFormatException e) {validInput = false; }} // Testing nextDouble (); validInput = hamis; dupla pénzInWallet = 0,0; while (! validInput) {System.out.print ("Mennyi pénz van a pénztárcájában? $"); String input = userInputScanner.nextLine (); try {moneyInWallet = Double.parseDouble (input); validInput = igaz; } catch (NumberFormatException e) {validInput = false; }} System.out.println ("\ nSzia" + név + "!" + NumberOfCats + (numberOfCats> 1? "Cicák": "macska") + "és $" + moneyInWallet + "van a pénztárcájában. / n "); }}

  • Vegye figyelembe, hogy itt nem kellett importálnunk a

    NumberFormatException

  • osztály, mert a java.lang csomag része, ami azt jelenti, hogy beépítve van.
  • A puffert sem kellett törölnünk a használatával

    userInputScanner.nextLine ();

  • a próbafogás fogási részében.

Tippek

  • A Scanner osztály használatával kapcsolatos további információkért lásd a Scanner API -t.
  • A következő szó olvasásához mindig a.next () kifejezést használja a.nextLine () helyett, mivel a.nextLine () hibás lehet.

Ajánlott: