Cuprins:
- Înainte de a putea folosi o clasă
- Înainte de a putea utiliza clasa
- Pentru a citi o valoare de intrare de la utilizator, puteți utiliza una dintre metodele din clasa
Video: Age of Deceit (2) - Hive Mind Reptile Eyes Hypnotism Cults World Stage - Multi - Language 2024
Până la Java 1. 5, obținerea textului de la utilizator într-un program Java bazat pe console nu a fost ușor. Dar cu Java 1. 5, o nouă clasă - numită
Scanner
- a fost introdusă pentru a simplifica sarcina de obținere a informațiilor de la utilizator. Aici folosiți clasa
Scanner
pentru a obține valori simple de intrare de la utilizator. Tehnicile pe care le prezint aici sunt folosite în multe dintre programele prezentate în restul cărții.
Dacă utilizați o versiune mai veche a Java, ar trebui să citiți acest lucru, deoarece multe programe utilizează clasa
Scanner
.
Programul simplu de mai jos utilizează clasa
Scanner
pentru a citi o valoare întregă de la utilizator și apoi afișează valoarea în consola pentru a verifica dacă programul a primit valoarea introdusă de utilizator. Iată un exemplu de fereastră a consolei pentru acest program:
Introduceți un număr întreg: 5
ați introdus 5.
Programul începe prin afișarea mesajului
Introduceți un număr întreg:
. Apoi vă așteaptă să introduceți un număr. Când introduceți un număr (de exemplu 5) și apăsați tasta Enter, pe al doilea rând apare mesajul de confirmare (
ați introdus 5
).
import java. UTIL. Scanner; @@ RA1
public class ScannerApp
{
Scanner static sc = Scanner nou (System.in); @@ ra6
public static void principal (String [] args)
{
Sistem. out. print ("Introduceți un număr întreg:"); @@ ra10
int x = sc. nextInt (); @@ ra11
System. out. println ("Ați introdus" + x + "."); @
}
Importarea clasei Scanner în Java
Înainte de a putea folosi o clasă
Scanner
într-un program, trebuie să o importați. Pentru a face acest lucru, codați o instrucțiune
import
la începutul programului, înainte de declarația de clasă:
importați java. UTIL. Scanner;
Rețineți că
java
și
util
nu sunt capitalizate, dar
Scanner
este.
Dacă folosiți alte clase în java
. util
, puteți importa întregul pachet prin codarea instrucțiunii
import
astfel:
importați java. UTIL. *;
Declarația și crearea unui obiect Scanner în Java
Înainte de a putea utiliza clasa
Scanner
pentru a citi intrarea din consola, trebuie să declarați o variabilă
Scanner
din clasa
Scanner
. S-ar putea să doriți să creați variabila
Scanner
ca variabilă de clasă și să creați obiectul
Scanner
în inițializatorul variabilei de clasă, așa cum se arată în linia 6 a programului de mai sus:
sc = scaner nou (System.in);
Astfel, puteți utiliza variabila
sc
în orice metodă din clasă.
Pentru a crea un obiect
Scaner
, utilizați cuvântul cheie
nou
urmat de un apel către constructorul de clasă
Scanner
. Rețineți că clasa
Scanner
necesită un parametru care indică fluxul de intrare
de la care intră intrarea. Puteți utiliza Sistem. în
aici pentru a specifica intrarea standard a consolei de tastatură.
Introducere
Pentru a citi o valoare de intrare de la utilizator, puteți utiliza una dintre metodele din clasa
Scanner
care sunt enumerate mai jos. După cum puteți vedea, tipul de date primitiv are o metodă separată.
Metode de clasă a scanerului care obțin valori de intrare
Explicație | boolean nextBoolean () |
Citește o valoare
|
boolean
de la utilizator.
byte nextByte () |
Citește o valoare
|
byte
de la utilizator.
dublu nextDouble () |
Citește o valoare
|
dublă
de la utilizator.
float nextFloat () |
Citește o valoare
|
float
de la utilizator.
int nextInt () |
Citește o valoare
|
int
de la utilizator.
String nextLine () |
Citește o valoare
|
String
de la utilizator.
long next Long () |
Citește o valoare
|
lungă
de la utilizator.
short nextShort () |
Citește o valoare
|
scurtă
de la utilizator.
Observați în prima coloană a tabelului că fiecare listă de metode începe cu tipul valorii returnate de metodă. Metoda |
nextInt
, de exemplu, returnează o valoare
int
. De asemenea, observați că fiecare dintre metode se termină cu un set gol de paranteze. Aceasta înseamnă că aceste metode nu necesită parametri. Dacă o metodă necesită parametri, parametrii sunt enumerați în aceste paranteze.
Deoarece aceste metode citesc o valoare de la utilizator și returnează valoarea, cele mai des le folosiți în instrucțiuni care atribuie valoarea unei variabile. Linia 11, de exemplu, citește
int
și o atribuie unei variabile numite
x
.
Când metoda
nextInt
este executată, programul așteaptă ca utilizatorul să introducă o valoare în fereastra consolei. Pentru a lăsa utilizatorul să știe ce fel de intrare așteaptă programul, de obicei ar trebui să sunați la sistemul
. out. imprimați metoda
înainte de a apela o metodă
Scaner
pentru a obține intrarea. Linia 10 solicită sistemul
. out. imprimați
pentru a afișa mesajul
Introduceți un număr întreg:
pe consola. În acest fel, utilizatorul știe că programul așteaptă intrarea.
Dacă utilizatorul introduce o valoare care nu poate fi convertită la tipul corect, programul se blochează, ceea ce înseamnă că se termină brusc. Pe măsură ce programul se blochează, acesta afișează un mesaj de eroare criptic care indică ce a cauzat eșecul. Dacă introduceți
trei
în locul unui număr real, de exemplu, fereastra consolei arată astfel:
Introduceți un număr întreg:
trei Excepție în fișierul "main" java. UTIL. InputMismatchException la java. UTIL. Scanner. throwFor (Scanner. java: 819)
la java. UTIL. Scanner. următor (Scanner: java: 1431)
la java. UTIL. Scanner. nextInt (Scanner.java: 2040)
la java. UTIL. Scanner. nextInt (Scanner.java: 2000)
la ScannerApp.main (ScannerApp.java: 11)
Acest mesaj indică faptul că a apărut o excepție
numită InputMismatchException
, ceea ce înseamnă că programul se aștepta să vadă un întreg,. Dacă nu știți cum să oferiți astfel de excepții, astfel încât programul să poată afișa un mesaj mai prietenos și să ofere utilizatorului o altă fotografie la introducerea unei valori corecte, trebuie să vă puneți la îndoială faptul că dacă utilizatorul introduce date incorecte, programul tău se prăbușește cu neputință.
Puteți împiedica metoda
nextInt
și alte metode similare să coborâți cu datele de intrare incorecte utilizând mai întâi una dintre metodele listate aici pentru a testa următoarea intrare pentru a vă asigura că este validă.
Metode de clasă scaner care verifică valori de intrare valide
Explicație | boolean hasNextBoolean () |
Returnează
|
true
boolean
valoare.
boolean hasNextByte ()
Returnează |
true
|
dacă următoarea valoare introdusă de utilizator este o valoare valabilă
octet
.
boolean hasNextDouble ()
Returnează |
true
|
dacă următoarea valoare introdusă de utilizator este o valoare validă
dublă
.
boolean hasNextFloat ()
Returnează |
true
|
dacă următoarea valoare introdusă de utilizator este o valoare validă
float
.
boolean hasNextInt ()
Returnează |
true
|
dacă următoarea valoare introdusă de utilizator este o valoare validă
int
.
boolean hasNextLong ()
Returnează |
true
|
dacă următoarea valoare introdusă de utilizator este o valoare validă
lungă
.
boolean hasNextShort ()
Returnează |
true
|
dacă următoarea valoare introdusă de utilizator este o valoare validă
scurtă
.
|