logo

Java Scanner

Skannerklass i Java finns i paketet java.util. Java tillhandahåller olika sätt att läsa indata från tangentbordet, java.util.Scanner-klassen är ett av dem.

Java Scanner-klassen delar upp indata i tokens med hjälp av en avgränsare som är blanksteg som standard. Det ger många metoder för att läsa och analysera olika primitiva värden.

Word snabbåtkomst verktygsfält

Java Scanner-klassen används ofta för att analysera text för strängar och primitiva typer med hjälp av ett reguljärt uttryck. Det är det enklaste sättet att få input i Java. Med hjälp av Scanner i Java kan vi få input från användaren i primitiva typer som int, long, double, byte, float, short, etc.

Java Scanner-klassen utökar objektklassen och implementerar Iterator- och Closeable-gränssnitt.

Java Scanner-klassen tillhandahåller nextXXX()-metoder för att returnera värdetypen som nextInt(), nextByte(), nextShort(), next(), nextLine(), nextDouble(), nextFloat(), nextBoolean(), etc. För att få ett enstaka tecken från skannern kan du anropa metoden next().charAt(0) som returnerar ett enstaka tecken.

Java-skannerklassdeklaration

 public final class Scanner extends Object implements Iterator 

Hur man skaffar Java Scanner

För att få instansen av Java Scanner som läser indata från användaren, måste vi skicka indataströmmen (System.in) i konstruktorn för Scanner-klassen. Till exempel:

 Scanner in = new Scanner(System.in); 

För att få instansen av Java Scanner som analyserar strängarna måste vi skicka strängarna i konstruktorn för klassen Scanner. Till exempel:

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

Java-skannerklasskonstruktörer

SN Konstruktör Beskrivning
1) Skanner (filkälla) Den konstruerar en ny skanner som producerar värden som skannas från den angivna filen.
2) Scanner (Filkälla, String CharsetName) Den konstruerar en ny skanner som producerar värden som skannas från den angivna filen.
3) Scanner (InputStream-källa) Den konstruerar en ny skanner som producerar värden som skannas från den angivna ingångsströmmen.
4) Scanner (InputStream-källa, String charsetName) Den konstruerar en ny skanner som producerar värden som skannas från den angivna ingångsströmmen.
5) Skanner (läsbar källa) Den konstruerar en ny skanner som producerar värden som skannas från den angivna källan.
6) Skanner (strängkälla) Den konstruerar en ny skanner som producerar värden som skannas från den angivna strängen.
7) Scanner (ReadableByteChannel-källa) Den konstruerar en ny skanner som producerar värden som skannas från den angivna kanalen.
8) Scanner (ReadableByteChannel-källa, String charsetName) Den konstruerar en ny skanner som producerar värden som skannas från den angivna kanalen.
9) Skanner (sökvägskälla) Den konstruerar en ny skanner som producerar värden som skannas från den angivna filen.
10) Skanner (sökvägskälla, sträng teckenuppsättningsnamn) Den konstruerar en ny skanner som producerar värden som skannas från den angivna filen.

Java-skannerklassmetoder

Följande är listan över skannermetoder:

SN Modifierare & Typ Metod Beskrivning
1) tomhet stänga() Den används för att stänga denna skanner.
2) mönster avgränsare() Den används för att hämta det mönster som skannerklassen för närvarande använder för att matcha avgränsare.
3) Ström hitta alla() Den används för att hitta en ström av matchningsresultat som matchar den angivna mönstersträngen.
4) Sträng findInLine() Den används för att hitta nästa förekomst av ett mönster som är konstruerat från den angivna strängen, och ignorerar avgränsare.
5) sträng findWithinHorizon() Den används för att hitta nästa förekomst av ett mönster som är konstruerat från den angivna strängen, och ignorerar avgränsare.
6) booleskt hasNext() Den returnerar sant om den här skannern har en annan token i sin inmatning.
7) booleskt hasNextBigDecimal() Den används för att kontrollera om nästa token i denna skanners indata kan tolkas som en BigDecimal med hjälp av metoden nextBigDecimal() eller inte.
8) booleskt hasNextBigInteger() Den används för att kontrollera om nästa token i denna skanners indata kan tolkas som en BigDecimal med hjälp av metoden nextBigDecimal() eller inte.
9) booleskt hasNextBoolean() Den används för att kontrollera om nästa token i denna skanners indata kan tolkas som en boolesk med hjälp av metoden nextBoolean() eller inte.
10) booleskt hasNextByte() Den används för att kontrollera om nästa token i denna skanners indata kan tolkas som en byte med metoden nextBigDecimal() eller inte.
elva) booleskt hasNextDouble() Den används för att kontrollera om nästa token i denna skanners indata kan tolkas som en BigDecimal med hjälp av metoden nextByte() eller inte.
12) booleskt hasNextFloat() Den används för att kontrollera om nästa token i denna skanners indata kan tolkas som en Float med metoden nextFloat() eller inte.
13) booleskt hasNextInt() Den används för att kontrollera om nästa token i denna skanners indata kan tolkas som en int med hjälp av metoden nextInt() eller inte.
14) booleskt hasNextLine() Den används för att kontrollera om det finns en annan linje i ingången på denna skanner eller inte.
femton) booleskt hasNextLong() Den används för att kontrollera om nästa token i denna skanners indata kan tolkas som en Long med hjälp av metoden nextLong() eller inte.
16) booleskt hasNextShort() Den används för att kontrollera om nästa token i denna skanners indata kan tolkas som en Short med metoden nextShort() eller inte.
17) IOException ioException() Den används för att få IOException senast läsbar av denna skanner.
18) Lokal lokal() Den används för att få en Locale av Scanner-klassen.
19) MatchResult match() Den används för att få matchningsresultatet av den senaste skanningsoperationen som utfördes av denna skanner.
tjugo) Sträng Nästa() Den används för att hämta nästa kompletta token från skannern som används.
tjugoett) BigDecimal nextBigDecimal() Den skannar nästa token av inmatningen som en BigDecimal.
22) BigInteger nextBigInteger() Den skannar nästa token av inmatningen som ett BigInteger.
23) booleskt nextBoolean() Den skannar nästa token av inmatningen till ett booleskt värde och returnerar det värdet.
24) byte nextByte() Den skannar nästa token av ingången som en byte.
25) dubbel nextDouble() Den skannar nästa token av ingången som en dubbel.
26) flyta nextFloat() Den skannar nästa token av ingången som en float.
27) int nextInt() Den skannar nästa token av ingången som en Int.
28) Sträng nextLine() Den används för att hämta indatasträngen som hoppades över av Scanner-objektet.
29) lång nextLong() Den skannar nästa token av ingången som en lång.
30) kort nextShort() Den skannar nästa token av ingången som en kort.
31) int radix() Den används för att få standardradix för skanneranvändningen.
32) tomhet avlägsna() Den används när borttagningsåtgärden inte stöds av denna implementering av Iterator.
33) Scanner återställa() Den används för att återställa skannern som används.
3. 4) Scanner hoppa() Den hoppar över indata som matchar det angivna mönstret och ignorerar avgränsare
35) Ström tokens() Den används för att få en ström av avgränsare-separerade tokens från Scanner-objektet som används.
36) Sträng att stränga() Den används för att få strängrepresentationen av Scanner med hjälp av.
37) Scanner useDelimiter() Den används för att ställa in avgränsningsmönstret för skannern som används till det angivna mönstret.
38) Scanner useLocale() Den används för att ställa in denna skanners lokalobjekt till den angivna lokalen.
39) Scanner useRadix() Den används för att ställa in standardradix för skannern som används till den specificerade radixen.

Exempel 1

Låt oss se ett enkelt exempel på Java Scanner där vi får en enda input från användaren. Här ber vi om en sträng genom metoden in.nextLine().

 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(); } } 

Produktion:

set vs karta
 Enter your name: sonoo jaiswal Name is: sonoo jaiswal 

Exempel 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(); } } 

Produktion:

 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 

Exempel 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(); } } 

Produktion:

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