Kur programoni në Java ose ndonjë gjuhë tjetër, ka shumë të ngjarë që të keni nevojë të përdorni informacionin hyrës nga një përdorues. Java ofron shumë metoda të ndryshme për marrjen e informacionit të përdoruesit, por metoda më e zakonshme dhe ndoshta më e lehtë për t’u zbatuar është përdorimi i objektit Skaner.
Hapa
Metoda 1 nga 2: Video
Hapi 1. Importoni klasën Skaner
Ju ose mund të zgjidhni të importoni
java.util. Skaner
klasa ose e tëra
java.util
paketë. Për të importuar një klasë ose një paketë, shtoni një nga rreshtat e mëposhtëm në fillim të kodit tuaj:
import java.util. Scanner; // Kjo do të importojë vetëm klasën Skaner. import java.util.*; // Kjo do të importojë të gjithë paketën java.util.
Hapi 2. Filloni një objekt të ri të Skanerit duke kaluar
Sistemi.in
rryma hyrëse në konstruktor.
Sistemi.in
është rryma standarde e hyrjes që është tashmë e hapur dhe e gatshme për të furnizuar të dhënat hyrëse. Zakonisht kjo rrjedhë korrespondon me hyrjen e tastierës.
Skanuesi userInputScanner = Skanuesi i ri (System.in);
Hapi 3. Lexoni në lloje të ndryshme të të dhënave hyrëse që fut përdoruesi
Klasa e Skanerit mbështet marrjen e primitivëve të tillë si int, bajt, të shkurtër, të gjatë përveç marrjes së telave.
-
Këtu janë disa metoda që janë të disponueshme përmes klasës së Skanerit:
-
Lexoni një bajt -
nextByte ()
-
Lexoni një të shkurtër -
nextShort ()
-
Lexoni një int -
nextInt ()
-
Lexoni gjatë -
NextLong ()
-
Lexoni një notë -
nextFloat ()
-
Lexoni një dyshe -
nextDouble ()
-
Lexoni një boolean -
nextBoolean ()
-
Lexoni një rresht të plotë -
NextLine ()
-
Lexoni një fjalë -
tjeter ()
-
-
Këtu është një shembull i një programi që përdor metoda të ndryshme të klasës Skaner për të marrë lloje të ndryshme të hyrjes:
import java.util. Scanner; klasa publike ScannerExample {public static void main (String args) {// Iniconi një Skanues të ri të Skanerit userInputScanner = Skanues i ri (System.in); // Testimi i nextLine (); System.out.println ("\ nSi quhesh?"); Emri i vargut = userInputScanner.nextLine (); // Testimi nextInt (); System.out.print ("Sa mace keni?"); int numberOfCats = userInputScanner.nextInt (); // Testimi i nextDouble (); System.out.print ("Sa para keni në portofolin tuaj? $"); double moneyInWallet = userInputScanner.nextDouble (); System.out.println ("\ nPërshëndetje" + emër + "! Ju keni" + numberOfCats + (numberOfCats> 1? "Macet": "cat") + "dhe $" + moneyInWallet + "në portofolin tuaj. / N"); }}
Metoda 2 nga 2: Trajtimi i përjashtimeve
Hapi 1. Trajtoni përjashtimet e dhëna
Një
InputMospërputhjaPërjashtim
hidhet kur përdoruesi fut të dhëna që nuk përputhen me llojin e kërkuar. Për shembull, nëse përdoruesi fut një String kur kërkohet një int, programi do të hedhë një
InputMospërputhjaPërjashtim
dhe dalje. Ka disa mënyra për të trajtuar këtë përjashtim dhe për të zgjidhur këtë problem në mënyrë që programi juaj të jetë i patëmetë.
Hapi 2. Përdorni një bllok try-catch për të trajtuar
InputMospërputhjaPërjashtim
.
import java.util. InputMospërputhjePërjashtim; import java.util. Scanner; klasa publike ScannerExample {public static void main (String args) {// Iniconi një Skanues të ri të Skanerit userInputScanner = Skanues i ri (System.in); // Testimi i nextLine (); System.out.print ("\ nSi quhesh?"); Emri i vargut = userInputScanner.nextLine (); // Testimi nextInt (); boolean validInput = false; int numriOfCats = 0; ndërsa (! validInput) {System.out.print ("Sa mace keni?"); provo {numberOfCats = userInputScanner.nextInt (); validInput = e vërtetë; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} // Testimi i nextDouble (); validInput = false; para të dyfishtaInWallet = 0.0; ndërsa (! validInput) {System.out.print ("Sa para keni në portofolin tuaj? $"); provo {moneyInWallet = userInputScanner.nextDouble (); userInputScanner.nextLine (); validInput = e vërtetë; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} System.out.println ("\ nPërshëndetje" + emër + "! Ju keni" + numberOfCats + (numberOfCats> 1? "Macet": "cat") + "dhe $" + moneyInWallet + "në portofolin tuaj. / n "); }}
Vini re se ne duhet të importojmë
java.util. InputMospërputhjePërjashtim
për të përdorur
InputMospërputhjaPërjashtim
Duke shtuar
userInputScanner.nextLine ();
Hapi 3. Përndryshe, bëni hyrjen e përdoruesit të pagabueshëm duke marrë vetëm rreshtat e ardhshëm nga Skaneri
Në këtë mënyrë, ne mund të sigurohemi që gjithçka që skaneri të kthehet është një objekt String dhe nuk do të krijojë asnjë përjashtim. Pastaj, për të konvertuar vargjet në numra të plotë ose dyshe, mund të përdorim klasat e mbështjellësve të plotë dhe të dyfishtë.
import java.util. Scanner; klasa publike ScannerExample {public static void main (String args) {// Iniconi një Skanues të ri të Skanerit userInputScanner = Skanues i ri (System.in); // Testimi i nextLine (); System.out.print ("\ nSi quhesh?"); Emri i vargut = userInputScanner.nextLine (); // Testimi nextInt (); boolean validInput = false; int numriOfCats = 0; ndërsa (! validInput) {System.out.print ("Sa mace keni?"); String input = userInputScanner.nextLine (); provo {numberOfCats = Integer.parseInt (hyrje); validInput = e vërtetë; } catch (NumberFormatException e) {validInput = false; }} // Testimi i nextDouble (); validInput = false; para të dyfishtaInWallet = 0.0; ndërsa (! validInput) {System.out.print ("Sa para keni në portofolin tuaj? $"); String input = userInputScanner.nextLine (); provo {moneyInWallet = Double.parseDouble (hyrje); validInput = e vërtetë; } catch (NumberFormatException e) {validInput = false; }} System.out.println ("\ nPërshëndetje" + emër + "! Ju keni" + numberOfCats + (numberOfCats> 1? "Macet": "cat") + "dhe $" + moneyInWallet + "në portofolin tuaj. / n "); }}
Vini re se këtu nuk na është dashur të importojmë
NumriFormatPërjashtim
Ne gjithashtu nuk kemi pse të pastrojmë tamponin duke përdorur
userInputScanner.nextLine ();
Këshilla
- Shihni API -në e Skanerit për më shumë informacion mbi përdorimin e klasës së Skanerit.
- Përdorni gjithmonë.next () në vend të.nextLine () për të lexuar fjalën tjetër, pasi.nextLine () mund të jetë e gabuar.