Programmējot Java vai kādā citā valodā, visticamāk, jums būs jāizmanto lietotāja ievadītā informācija. Java nodrošina daudzas dažādas metodes lietotāja informācijas iegūšanai, taču visizplatītākā un, iespējams, visvieglāk ieviešamā metode ir skenera objekta izmantošana.
Soļi
1. metode no 2: videoklipi
1. darbība. Importējiet skenera klasi
Jūs varat izvēlēties importēt
java.util. Scanner
klasē vai kopumā
java.util
iepakojums. Lai importētu klasi vai paketi, koda pašā sākumā pievienojiet vienu no šīm rindām:
importēt java.util. Scanner; // Tas importēs tikai skenera klasi. importēt java.util.*; // Tas importēs visu java.util pakotni.
2. solis. Inicializējiet jaunu skenera objektu, nokārtojot
System.in
ievades plūsma konstruktorā.
System.in
ir standarta ievades plūsma, kas jau ir atvērta un gatava ievades datu piegādei. Parasti šī plūsma atbilst tastatūras ievadei.
Skeneris userInputScanner = jauns skeneris (System.in);
Solis 3. Izlasiet dažāda veida ievades datus, ko lietotājs ievada
Skeneru klase papildus virkņu iegūšanai atbalsta tādu primitīvu iegūšanu kā int, baits, īss un garš.
-
Šeit ir dažas metodes, kas pieejamas skeneru klasē:
-
Lasīt baitu -
nextByte ()
-
Izlasi īsi -
nextShort ()
-
Izlasiet int -
nextInt ()
-
Lasi ilgi -
nextLong ()
-
Lasīt pludiņu -
nextFloat ()
-
Lasiet dubultā -
nextDouble ()
-
Lasīt Būla -
nextBoolean ()
-
Izlasiet pilnu rindu -
nextLine ()
-
Izlasi vārdu -
Nākamais()
-
-
Šeit ir piemērs programmai, kas izmanto dažādas skeneru klases metodes, lai iegūtu dažāda veida ievadi:
importēt java.util. Scanner; public class ScannerExample {public static void main (String args) {// Iniciēt jaunu skenera skeneri userInputScanner = new Scanner (System.in); // testēšana nextLine (); System.out.println ("\ nKāds ir jūsu vārds?"); Virknes nosaukums = userInputScanner.nextLine (); // Testing nextInt (); System.out.print ("Cik kaķu jums ir?"); int numberOfCats = userInputScanner.nextInt (); // Testing nextDouble (); System.out.print ("Cik daudz naudas ir jūsu makā? $"); dubultā naudaInWallet = userInputScanner.nextDouble (); System.out.println ("\ nSveiki" + vārds + "! Jūsu makā ir" + numberOfCats + (numberOfCats> 1? "Kaķi": "kaķis") + "un $" + moneyInWallet + ". / N"); }}
2. metode no 2: Izņēmumu apstrāde
1. solis. Apstrādājiet ievades izņēmumus
An
InputMismatchException
tiek izmests, kad lietotājs ievada datus, kas neatbilst pieprasītajam tipam. Piemēram, ja lietotājs ievada virkni, kad tiek prasīts int, programma iemetīs
InputMismatchException
un iziet. Ir vairāki veidi, kā rīkoties ar šo izņēmumu un atrisināt šo problēmu, lai jūsu programma būtu droša.
2. solis. Izmantojiet mēģinājuma noķeršanas bloku, lai apstrādātu
InputMismatchException
.
importēt java.util. InputMismatchException; importēt java.util. Scanner; public class ScannerExample {public static void main (String args) {// Iniciēt jaunu skenera skeneri userInputScanner = new Scanner (System.in); // testēšana nextLine (); System.out.print ("\ nKāds ir jūsu vārds?"); Virknes nosaukums = userInputScanner.nextLine (); // Testing nextInt (); Būla validInput = false; int numberOfCats = 0; while (! validInput) {System.out.print ("Cik kaķu jums ir?"); pamēģini {numberOfCats = userInputScanner.nextInt (); validInput = true; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} // Testing nextDouble (); validInput = nepatiess; dubultā naudaInWallet = 0,0; while (! validInput) {System.out.print ("Cik daudz naudas ir tavā makā? $"); pamēģini {moneyInWallet = userInputScanner.nextDouble (); userInputScanner.nextLine (); validInput = true; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} System.out.println ("\ nSveiki" + vārds + "! Jūsu makā ir" + numberOfCats + (numberOfCats> 1? "Kaķi": "kaķis") + "un $" + moneyInWallet + ". / n "); }}
Ņemiet vērā, ka mums ir jāimportē
java.util. InputMismatchException
lai izmantotu
InputMismatchException
Pievienošana
userInputScanner.nextLine ();
3. solis. Varat arī padarīt lietotāja ievadi drošu, tikai uzņemot nākamās skenera rindas
Tādā veidā mēs varam nodrošināt, ka viss, ko skeneris atgriež, ir String objekts un neradīs nekādus izņēmumus. Tad, lai pārvērstu virknes par veseliem skaitļiem vai dubultiem, mēs varam izmantot veselas un dubultās ietīšanas klases.
importēt java.util. Scanner; public class ScannerExample {public static void main (String args) {// Iniciēt jaunu skenera skeneri userInputScanner = new Scanner (System.in); // testēšana nextLine (); System.out.print ("\ nKāds ir jūsu vārds?"); Virknes nosaukums = userInputScanner.nextLine (); // Testing nextInt (); Būla validInput = false; int numberOfCats = 0; while (! validInput) {System.out.print ("Cik kaķu jums ir?"); Stīgu ievade = userInputScanner.nextLine (); mēģiniet {numberOfCats = Integer.parseInt (ievade); validInput = true; } catch (NumberFormatException e) {validInput = false; }} // Testing nextDouble (); validInput = nepatiess; dubultā naudaInWallet = 0,0; while (! validInput) {System.out.print ("Cik daudz naudas ir tavā makā? $"); Stīgu ievade = userInputScanner.nextLine (); try {moneyInWallet = Double.parseDouble (ievade); validInput = true; } catch (NumberFormatException e) {validInput = false; }} System.out.println ("\ nSveiki" + vārds + "! Jūsu makā ir" + numberOfCats + (numberOfCats> 1? "Kaķi": "kaķis") + "un $" + moneyInWallet + ". / n "); }}
Ņemiet vērā, ka šeit mums nebija jāimportē
NumberFormatException
Mums arī nevajadzēja iztīrīt buferi, izmantojot
userInputScanner.nextLine ();
Padomi
- Lai iegūtu plašāku informāciju par skenera klases izmantošanu, skatiet skenera API.
- Lai lasītu nākamo vārdu, vienmēr izmantojiet.next (), nevis.nextLine (), jo.nextLine () var būt kļūdains.