Java скенер (с примери)

В този урок ще научим за Java Scanner и неговите методи с помощта на примери.

В Scannerкласа на java.utilопаковката се използва за четене на входните данни от различни източници, като входящи потоци, потребители, файлове и т.н. Нека вземем един пример.

Пример 1: Прочетете ред текст с помощта на скенер

 import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter your name: "); // takes input from the keyboard String name = input.nextLine(); // prints the name System.out.println("My name is " + name); // closes the scanner input.close(); ) )

Изход

 Въведете името си: Келвин Казвам се Келвин

В горния пример обърнете внимание на реда

 Scanner input = new Scanner(System.in);

Тук създадохме обект с Scannerиме на вход.

В System.inпараметър се използва да вход от стандартния вход. Работи точно като вземане на входове от клавиатурата.

След това използвахме nextLine()метода на Scannerкласа, за да прочетем ред текст от потребителя.

Сега, когато имате някаква представа за това Scanner, нека разгледаме повече за него.

Импортиране на скенер клас

Както виждаме от горния пример, трябва да импортираме java.util.Scannerпакета, преди да можем да използваме Scannerкласа.

 import java.util.Scanner;

За да научите повече за импортирането на пакети, посетете Java Packages.

Създайте обект на скенер в Java

След като импортираме пакета, ето как можем да създаваме Scannerобекти.

 // read input from the input stream Scanner sc1 = new Scanner(InputStream input); // read input from files Scanner sc2 = new Scanner(File file); // read input from a string Scanner sc3 = new Scanner(String str);

Тук създадохме обекти от Scannerкласа, които ще четат съответно входни данни от InputStream, File и String.

Методи на Java Scanner за вземане на вход

В Scannerкласа предоставя различни методи, които ни позволяват да се чете входа от различни типове.

Метод Описание
nextInt() чете intстойност от потребителя
nextFloat() чете floatстойност от потребителя
nextBoolean() чете booleanстойност от потребителя
nextLine() чете ред текст от потребителя
next() чете дума от потребителя
nextByte() чете byteстойност от потребителя
nextDouble() чете double стойност от потребителя
nextShort() чете shortстойност от потребителя
nextLong() чете longстойност от потребителя

Пример 2: Java Scanner nextInt ()

 import java.util.Scanner; class Main ( public static void main(String() args) ( // creates a Scanner object Scanner input = new Scanner(System.in); System.out.println("Enter an integer: "); // reads an int value int data1 = input.nextInt(); System.out.println("Using nextInt(): " + data1); input.close(); ) )

Изход

 Въведете цяло число: 22 Използване на nextInt (): 22

В горния пример използвахме nextInt()метода за четене на цяло число.

Пример 3: Java Scanner nextDouble ()

 import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter Double value: "); // reads the double value double value = input.nextDouble(); System.out.println("Using nextDouble(): " + value); input.close(); ) )

Изход

 Въведете Double value: 33.33 Използване на nextDouble (): 33.33

В горния пример използвахме nextDouble()метода за четене на стойност с плаваща запетая.

Пример 4: Java Scanner next ()

 import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter your name: "); // reads the entire word String value = input.next(); System.out.println("Using next(): " + value); input.close(); ) )

Изход

 Въведете името си: Джони Уокър Използвайки следващия (): Джони

В горния пример използвахме next()метода за четене на низ от потребителя.

Тук предоставихме пълното име. Въпреки това, next()методът чете само първото име.

Това е така, защото next()методът чете въведени данни до интервала . След като се срещне празното пространство , той връща низа (с изключение на празното пространство).

Пример 5: Java Scanner nextLine ()

 import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter your name: "); // reads the entire line String value = input.nextLine(); System.out.println("Using nextLine(): " + value); input.close(); ) )

Изход

 Въведете името си: Джони Уокър Използвайки nextLine (): Джони Уокър

В първия пример използвахме nextLine()метода за четене на низ от потребителя.

За разлика next()от това nextLine()методът чете целия ред на въвеждане, включително интервали. Методът се прекратява, когато срещне знак от следващ ред ,.

Recommended Reading: Java Scanner skipping the nextLine().

Java Scanner with BigInteger and BigDecimal

Java scanner can also be used to read the big integer and big decimal numbers.

  • nextBigInteger() - reads the big integer value from the user
  • nextBigDecimal() - reads the big decimal value from the user

Example 4: Read BigInteger and BigDecimal

 import java.math.BigDecimal; import java.math.BigInteger; import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter a big integer: "); // reads the big integer BigInteger value1 = input.nextBigInteger(); System.out.println("Using nextBigInteger(): " + value1); System.out.print("Enter a big decimal: "); // reads the big decimal BigDecimal value2 = input.nextBigDecimal(); System.out.println("Using nextBigDecimal(): " + value2); input.close(); ) )

Output

 Enter a big integer: 987654321 Using nextBigInteger(): 987654321 Enter a big decimal: 9.55555 Using nextBigDecimal(): 9.55555

In the above example, we have used the java.math.BigInteger and java.math.BigDecimal package to read BigInteger and BigDecimal respectively.

Working of Java Scanner

В Scannerкласа чете цялата линия и разделя линията в жетони. Токените са малки елементи, които имат някакво значение за Java компилатора. Например,

Да предположим, че има входен низ:

 He is 22

В този случай обектът на скенера ще прочете целия ред и ще раздели низа на символи: „ Той “, „ е “ и „ 22 “. След това обектът се итерира над всеки маркер и чете всеки маркер, използвайки своите различни методи.

Забележка : По подразбиране празното пространство се използва за разделяне на маркери.

Интересни статии...