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: /