logo

Escàner Java

La classe d'escàner a Java es troba al paquet java.util. Java ofereix diverses maneres de llegir l'entrada des del teclat, la classe java.util.Scanner és una d'elles.

La classe Java Scanner divideix l'entrada en testimonis mitjançant un delimitador que és un espai en blanc per defecte. Proporciona molts mètodes per llegir i analitzar diversos valors primitius.

bash altrament si

La classe Java Scanner s'utilitza àmpliament per analitzar text per a cadenes i tipus primitius mitjançant una expressió regular. És la manera més senzilla d'obtenir entrada en Java. Amb l'ajuda de Scanner a Java, podem obtenir entrada de l'usuari en tipus primitius com int, long, double, byte, float, short, etc.

La classe Java Scanner amplia la classe Object i implementa les interfícies Iterator i Closeable.

La classe Java Scanner proporciona mètodes nextXXX() per retornar el tipus de valor com ara nextInt(), nextByte(), nextShort(), next(), nextLine(), nextDouble(), nextFloat(), nextBoolean(), etc. . Per obtenir un sol caràcter de l'escàner, podeu cridar al mètode next().charAt(0) que retorna un sol caràcter.

Declaració de classe de Java Scanner

 public final class Scanner extends Object implements Iterator 

Com obtenir Java Scanner

Per obtenir la instància de Java Scanner que llegeix l'entrada de l'usuari, hem de passar el flux d'entrada (System.in) al constructor de la classe Scanner. Per exemple:

 Scanner in = new Scanner(System.in); 

Per obtenir la instància de Java Scanner que analitza les cadenes, hem de passar les cadenes al constructor de la classe Scanner. Per exemple:

 Scanner in = new Scanner('Hello Javatpoint'); 

Constructors de classes d'escàner Java

SN Constructor Descripció
1) Escàner (font del fitxer) Construeix un nou escàner que produeix valors escanejats a partir del fitxer especificat.
2) Escàner (font del fitxer, String charsetName) Construeix un nou escàner que produeix valors escanejats a partir del fitxer especificat.
3) Escàner (font InputStream) Construeix un nou escàner que produeix valors escanejats a partir del flux d'entrada especificat.
4) Escàner (font InputStream, String charsetName) Construeix un nou escàner que produeix valors escanejats a partir del flux d'entrada especificat.
5) Escàner (font llegible) Construeix un escàner nou que produeix valors escanejats a partir de la font especificada.
6) Escàner (font de cadena) Construeix un nou Scanner que produeix valors escanejats a partir de la cadena especificada.
7) Escàner (font ReadableByteChannel) Construeix un nou escàner que produeix valors escanejats des del canal especificat.
8) Escàner (font ReadableByteChannel, String charsetName) Construeix un nou escàner que produeix valors escanejats des del canal especificat.
9) Escàner (font del camí) Construeix un nou escàner que produeix valors escanejats a partir del fitxer especificat.
10) Escàner (font del camí, String charsetName) Construeix un nou escàner que produeix valors escanejats a partir del fitxer especificat.

Mètodes de classe d'escàner Java

A continuació es mostra la llista de mètodes d'escàner:

classe d'objectes en java
SN Modificador i tipus Mètode Descripció
1) buit Tanca() S'utilitza per tancar aquest escàner.
2) patró delimitador() S'utilitza per obtenir el Patró que la classe Scanner està utilitzant actualment per fer coincidir els delimitadors.
3) corrent trobar-ho tot() S'utilitza per trobar un flux de resultats de coincidència que coincideixin amb la cadena de patró proporcionada.
4) Corda findInLine() S'utilitza per trobar la següent ocurrència d'un patró construït a partir de la cadena especificada, ignorant els delimitadors.
5) corda findWithinHorizon() S'utilitza per trobar la següent ocurrència d'un patró construït a partir de la cadena especificada, ignorant els delimitadors.
6) booleà hasNext() Torna veritable si aquest escàner té un altre testimoni a la seva entrada.
7) booleà hasNextBigDecimal() S'utilitza per comprovar si el següent testimoni de l'entrada d'aquest escàner es pot interpretar com a BigDecimal mitjançant el mètode nextBigDecimal() o no.
8) booleà hasNextBigInteger() S'utilitza per comprovar si el següent testimoni de l'entrada d'aquest escàner es pot interpretar com a BigDecimal mitjançant el mètode nextBigDecimal() o no.
9) booleà hasNextBoolean() S'utilitza per comprovar si el següent testimoni de l'entrada d'aquest escàner es pot interpretar com un booleà mitjançant el mètode nextBoolean() o no.
10) booleà hasNextByte() S'utilitza per comprovar si el següent testimoni de l'entrada d'aquest escàner es pot interpretar com un byte mitjançant el mètode nextBigDecimal() o no.
11) booleà hasNextDouble() S'utilitza per comprovar si el següent testimoni de l'entrada d'aquest escàner es pot interpretar com a BigDecimal mitjançant el mètode nextByte() o no.
12) booleà hasNextFloat() S'utilitza per comprovar si el següent testimoni de l'entrada d'aquest escàner es pot interpretar com un flotant mitjançant el mètode nextFloat() o no.
13) booleà hasNextInt() S'utilitza per comprovar si el següent testimoni de l'entrada d'aquest escàner es pot interpretar com un int utilitzant el mètode nextInt() o no.
14) booleà hasNextLine() S'utilitza per comprovar si hi ha una altra línia a l'entrada d'aquest escàner o no.
15) booleà hasNextLong() S'utilitza per comprovar si el següent testimoni de l'entrada d'aquest escàner es pot interpretar com a Long mitjançant el mètode nextLong() o no.
16) booleà hasNextShort() S'utilitza per comprovar si el següent testimoni de l'entrada d'aquest escàner es pot interpretar com a curt mitjançant el mètode nextShort() o no.
17) IOException ioException() S'utilitza per obtenir l'última excepció llançada per aquest escàner llegible.
18) Local local () S'utilitza per obtenir una configuració regional de la classe Scanner.
19) MatchResult coincideix () S'utilitza per obtenir el resultat de la coincidència de l'última operació d'escaneig realitzada per aquest escàner.
20) Corda Pròxim() S'utilitza per obtenir el següent testimoni complet de l'escàner que està en ús.
21) Gran Decimal nextBigDecimal() Escaneja el següent testimoni de l'entrada com a BigDecimal.
22) Enter gran nextBigInteger() Escaneja el següent testimoni de l'entrada com a BigInteger.
23) booleà nextBoolean() Escaneja el següent testimoni de l'entrada en un valor booleà i retorna aquest valor.
24) byte nextByte() Escaneja el següent testimoni de l'entrada com a byte.
25) doble següentDoble() Escaneja el següent testimoni de l'entrada com a doble.
26) flotar nextFloat() Escaneja el següent testimoni de l'entrada com a flotant.
27) int nextInt() Escaneja el següent testimoni de l'entrada com a Int.
28) Corda nextLine() S'utilitza per obtenir la cadena d'entrada que s'ha omès de l'objecte Scanner.
29) llarg següentLlarg() Escaneja el següent testimoni de l'entrada com a llarg.
30) curt nextShort() Escaneja el següent testimoni de l'entrada com a curt.
31) int radix() S'utilitza per obtenir la base predeterminada de l'ús de l'escàner.
32) buit eliminar () S'utilitza quan l'operació d'eliminació no és compatible amb aquesta implementació d'Iterator.
33) Escàner restablir () S'utilitza per restablir l'escàner que està en ús.
34) Escàner Omet() Omet l'entrada que coincideix amb el patró especificat, ignorant els delimitadors
35) corrent fitxes () S'utilitza per obtenir un flux de fitxes separades per delimitadors de l'objecte Scanner que està en ús.
36) Corda toString() S'utilitza per obtenir la representació de cadena de Scanner utilitzant.
37) Escàner useDelimiter() S'utilitza per establir el patró delimitador de l'escàner que s'utilitza al patró especificat.
38) Escàner useLocale() S'utilitza per establir l'objecte local d'aquest escàner a la configuració regional especificada.
39) Escàner useRadix() S'utilitza per establir la base predeterminada de l'escàner que s'utilitza a la base especificada.

Exemple 1

Vegem un exemple senzill de Java Scanner on rebem una única entrada de l'usuari. Aquí, estem demanant una cadena mitjançant el mètode in.nextLine().

Kat timpf
 import java.util.*; public class ScannerExample { public static void main(String args[]){ Scanner in = new Scanner(System.in); System.out.print('Enter your name: '); String name = in.nextLine(); System.out.println('Name is: ' + name); in.close(); } } 

Sortida:

 Enter your name: sonoo jaiswal Name is: sonoo jaiswal 

Exemple 2

 import java.util.*; public class ScannerClassExample1 { public static void main(String args[]){ String s = 'Hello, This is JavaTpoint.'; //Create scanner Object and pass string in it Scanner scan = new Scanner(s); //Check if the scanner has a token System.out.println('Boolean Result: ' + scan.hasNext()); //Print the string System.out.println('String: ' +scan.nextLine()); scan.close(); System.out.println('--------Enter Your Details-------- '); Scanner in = new Scanner(System.in); System.out.print('Enter your name: '); String name = in.next(); System.out.println('Name: ' + name); System.out.print('Enter your age: '); int i = in.nextInt(); System.out.println('Age: ' + i); System.out.print('Enter your salary: '); double d = in.nextDouble(); System.out.println('Salary: ' + d); in.close(); } } 

Sortida:

 Boolean Result: true String: Hello, This is JavaTpoint. -------Enter Your Details--------- Enter your name: Abhishek Name: Abhishek Enter your age: 23 Age: 23 Enter your salary: 25000 Salary: 25000.0 

Exemple 3

 import java.util.*; public class ScannerClassExample2 { public static void main(String args[]){ String str = 'Hello/This is JavaTpoint/My name is Abhishek.'; //Create scanner with the specified String Object Scanner scanner = new Scanner(str); System.out.println('Boolean Result: '+scanner.hasNextBoolean()); //Change the delimiter of this scanner scanner.useDelimiter('/'); //Printing the tokenized Strings System.out.println('---Tokenizes String---'); while(scanner.hasNext()){ System.out.println(scanner.next()); } //Display the new delimiter System.out.println('Delimiter used: ' +scanner.delimiter()); scanner.close(); } } 

Sortida:

 Boolean Result: false ---Tokenizes String--- Hello This is JavaTpoint My name is Abhishek. Delimiter used: /