java scanner class tutorial with examples
У овом упутству ћемо размотрити како увести и користити класу скенера Јава заједно са разним методама, АПИ-јем скенера и примерима:
Већ смо видели стандардне улазно-излазне методе које Јава користи за читање / писање података на стандардне И / О уређаје.
Јава пружа још један механизам за читање корисничког уноса. Ово је класа Скенер. Иако није врло ефикасна, класа Сцаннер је најлакши и најдражи начин за читање уноса у Јава програмима.
=> Овде проверите СВЕ Јава туторијале.
Шта ћете научити:
Класа Јава скенера: Поглед у дубину
Класа скенера се углавном користи за скенирање улаза и читање уноса примитивних (уграђених) типова података попут инт, децималних, двоструких итд. Класа скенера у основи враћа токенизовани улаз на основу неког граничника. Дакле, генерално, ако желите да прочитате тип дт, онда бисте могли да користите функцију нектдт () за читање уноса.
Класа Сцаннер имплементира интерфејсе Итератор (стринг), Цлосеабле и АутоЦлосеабле.
Истражимо детаље ове класе Скенера сада.
Увези скенер
Класа скенера припада пакету „јава.утил“. Због тога да бисте у програму користили класу Сцаннер, овај пакет морате да увезете на следећи начин.
импорт јава.утил. *
ИЛИ
импорт јава.утил.Сцаннер;
Било која од горе наведених изјава увешће класу Сцаннер и његове функције у ваш програм.
Класа Јава скенера
Једном када се класа Сцаннер увезе у програм Јава, можете је користити за читање уноса различитих типова података. У зависности од тога да ли желите да прочитате унос са стандардног улаза или датотеке или канала, можете проследити одговарајући унапред дефинисани објекат објекту Сцаннер.
Доље је дат основни пример употребе класе Сцаннер.
import java.util.*; public class Main { public static void main(String args()) { Scanner in = new Scanner (System.in); System.out.print ('Enter a String: '); String mystr = in.nextLine(); System.out.println('The String you entered is: ' + mystr); in.close(); } }
Излаз:
У горе наведеном програму обезбедили смо „Систем.ин“ (стандардни улаз) као објекат док смо креирали објекат класе Сцаннер. Затим читамо низ уноса са стандардног улаза.
АПИ скенера (конструктори и методе)
У овом одељку ћемо детаљно истражити АПИ класе скенера. Класа скенера садржи разне преоптерећене конструкторе за прилагођавање различитим методама уноса попут Систем.ин, уноса датотека, путање итд.
Следећа табела даје прототип и опис сваког конструктора класе Сцаннер.
шта је .7з датотека
Не | Прототип | Опис |
---|---|---|
7 | Скенер (Извор путање, низ знаковаНаме) | Овај конструктор конструира нови скенер који скенира наведену датотеку и производи вредности |
један | Скенер (извор ИнпутСтреам) | Овај конструктор конструира нови Скенер који скенира нови ИнпутСтреам, извор и производи вредности |
два | Скенер (ИнпутСтреам извор, стринг цхарсетНаме) | Овај конструктор конструира нови Скенер који скенира нови ИнпутСтреам, извор и производи вредности |
3 | Скенер (извор датотеке) | Овај конструктор конструира нови скенер који скенира наведену датотеку и производи вредности |
4 | Скенер (извор датотеке, стринг цхарсетНаме) | Овај конструктор конструира нови скенер који скенира наведену датотеку и производи вредности |
5 | Скенер (извор низа) | Овај конструктор конструира нови скенер који скенира наведени низ и производи вредности |
6 | Скенер (извор путање) | Овај конструктор конструира нови скенер који скенира наведену датотеку и производи вредности |
8 | Скенер (читљив извор) | Овај конструктор конструира нови Скенер који скенира наведени извор и производи вредности |
9 | Скенер (извор РеадаблеБитеЦханнел) | Овај конструктор конструира нови скенер који скенира наведени канал и производи вредности |
10 | Скенер (извор РеадаблеБитеЦханнел, стринг цхарсетНаме) | Овај конструктор конструира нови скенер који скенира наведени канал и производи вредности |
Као и конструктори, класа Сцаннер такође нуди бројне методе које се користе за скенирање и читање уноса. Пружа различите логичке методе које вам омогућавају да проверите да ли је следећи токен на улазу токен одређеног типа података.
Имајте на уму да за сваки конструктор можете навести само један аргумент са унапред дефинисаним улазним објектом или два аргумента који се састоје од унапред дефинисаног улазног објекта и скупа знакова. У случају једног аргумента, претпоставља се подразумевани скуп знакова.
Постоје и методе за преузимање токена сваког типа података.
Остале методе укључују оне за постављање локализације, радикс, обрасце подударања, затварање скенера итд.
Следећа табела даје прототип и опис сваке од основних метода скенера.
Не | Прототип | Опис |
---|---|---|
7 | Боолеан хасНектФлоат () | Проверава да ли је следећи токен на улазу за скенер плутајућег типа |
један | Боолеан хасНект () | Приказује тачно ако у уносу скенера постоји још један токен |
два | Боолеан хасНектБигДецимал () | Проверава да ли је следећи токен на улазу за скенер типа бигДецимал. |
3 | Боолеан хасНектБигИнтегер () | Проверава да ли је следећи токен у улазу Скенер типа бигИнтегер |
4 | Боолеан хасНектБоолеан () | Проверава да ли је следећи токен на улазу за скенер логичког типа |
5 | Логички хасНектБите () | Проверава да ли је следећи токен на улазу за скенер типа Бите |
6 | Боолеан хасНектДоубле () | Проверава да ли је следећи токен на улазу за скенер двоструког типа |
8 | Боолеан хасНектИнт () | Проверава да ли је следећи токен на улазу скенера целог броја |
9 | Боолеан хасНектЛине () | Проверава да ли је следећи знак на улазу за скенер други ред |
10 | Боолеан хасНектЛонг () | Проверава да ли је следећи токен на улазу за скенер дугог типа |
Једанаест | Боолеан хасНектСхорт () | Проверава да ли је следећи токен на улазу за скенер кратког типа |
12 | Стринг нект () | Скенира унос за следећи комплетан токен |
13 | БигДецимал нектБигДецимал () | Скенира улаз за следећи БигДецимал токен |
14 | БигИнтегер нектБигИнтегер () | Скенира улаз за следећи БигИнтегер токен |
петнаест | Боолеан нектБоолеан () | Скенира улаз за следећи логички токен |
16 | Бајт нектБите () | Скенира улаз за следећи бајтни токен |
17 | Доубле нектДоубле () | Скенира улаз за следећи Доубле токен |
18 | Флоат нектФлоат () | Скенира улаз за следећи флоат токен |
19 | Инт нектИнт () | Скенира улаз за следећи целобројни токен |
двадесет | Стринг нектЛине () | Нека се улазни низ прескочи из објекта Сцаннер |
двадесет један | Лонг нектЛонг () | Скенира унос за следећи Лонг интегер токен |
22 | Кратко нектСхорт () | Скенира улаз за следећи кратки цео токен |
2. 3 | Ресетовање скенера () | Ресетујте скенер који се тренутно користи |
24 | Прескакање скенера () | Занемарите граничнике и прескочите улаз који одговара датом обрасцу |
25 | Скенер усеДелимитер () | Поставите образац за ограничавање на наведени образац |
26 | Скенер усеЛоцале () | Подесите локални језик објекта Скенери са датом локализацијом |
27 | Скенер усеРадик () | Подесите наведени радик као задани радик за Сцаннер |
28 | Инт радик () | Враћа задати радикс тренутног скенера |
29 | воид ремове () | Може се користити када Итератор не подржава операцију уклањања |
30 | Токенс токени () | Приказује ток токена раздвојених токена са тренутног Скенера |
31 | Стринг тоСтринг () | Приказ низа повратка датог скенера који се тренутно користи |
32 | ИОЕкцептион иоЕкцептион () | Враћа ИОЕкцептион који је последњи пут бацио читач објекта Сцаннер |
33 | Стреам финдАЛЛ () | Приказује ток резултата подударања који се подударају са датим обрасцем |
3. 4 | Стринг финдИнЛине () | Пронађите следећу појаву узорка из датог низа; занемарује граничнике |
35 | Стринг финдВитхинХоризон () | Пронађите следећу појаву узорка из датог низа; занемарује граничнике |
36 | Граничник узорка () | Враћа образац који користи тренутни скенер |
37 | Воид цлосе () | Затвара скенер |
38 | МатцхРесулт матцх () | Даје резултат подударања последње операције скенирања |
39 | Локални локални () | Врати локализацију тренутног скенера |
Проверавати овде да бисте сазнали више о методама скенера.
Како се користи скенер у Јави?
Сад кад сте видели разне конструкторе и методе које нуди класа Сцаннер, хајде да сада применимо неке примере да покажемо како се користи класа Сцаннер у Јави.
Следећа примена приказује употребу класе Сцаннер за читање уноса са Систем.ин тј. Стандардног улаза.
Овде користимо унапред дефинисани Систем.ин објекат за креирање објекта Сцаннер. Затим се од корисника тражи да унесе име, класу и проценат. Сви ови детаљи се читају помоћу објекта класе Сцаннер.
Обратите пажњу на методе које објекти Скенера користе за читање различитих врста уноса. Како је име стринг, објекат Сцаннер користи методу нект (). За унос класе користи нектИнт () док за проценат користи нектФлоат ().
На тај начин можете лако раздвојити улаз током читања.
Излаз програма приказује улаз који се уноси и информације које се приказују.
import java.util.*; public class Main{ public static void main(String ()args){ String name; int myclass; float percentage; //creating object of Scanner class Scanner input = new Scanner(System.in); System.out.print('Enter your name: '); name = input.next(); System.out.print('Enter your class: '); myclass = input.nextInt(); System.out.print('Enter your percentage: '); percentage = input.nextFloat(); input.close(); System.out.println('Name: ' + name + ', Class: '+ myclass + ', Percentage: '+ percentage); } }
Излаз:
Низ скенера
Као што је већ поменуто, приликом креирања објекта скенера можете користити разне унапред дефинисане објекте. То значи да можете читати улаз са стандардног улаза, датотека и различитих И / О канала или из низова.
Када се користи унос низа, у њему можете користити и регуларне изразе.
Следећи примери показују програм у коме Скенер користи низ као улаз. Овај улаз се затим скенира и одвајају се токени читањем сваког токена.
Прочитани токени се затим приказују у излазу.
import java.util.*; public class Main{ public static void main(String ()args){ System.out.println ('The subjects are as follows :'); String input = '1 Maths 2 English 3 Science 4 Hindi'; Scanner s = new Scanner(input); System.out.print(s.nextInt()+'. '); System.out.println(s.next()); System.out.print(s.nextInt()+'. '); System.out.println(s.next()); System.out.print(s.nextInt()+'. '); System.out.println(s.next()); System.out.print(s.nextInt()+'. '); System.out.println(s.next()); s.close(); } }
Излаз:
Затворите скенер
Класа Јава Сцаннер користи методу „Цлосе ()“ за затварање скенера. Класа Сцаннер такође интерно имплементира интерфејс Цлосеабле и стога, ако Сцаннер већ није затворен, основни Реадабле интерфејс позива своју методу цлосе.
Добра је пракса програмирања да експлицитно затворите скенер методом Цлосе () након што завршите с употребом.
Белешка: Ако је објект скенера затворен и покуша се извршити претрага, резултираће „ИллегалСтатеЕкцептион“.
Често постављана питања
П # 1) Шта је класа Сцаннер у Јави?
Одговор: Класа Сцаннер део је Јава-овог пакета „јава.утил“ и користи се за читање уноса различитих примитивних типова података попут инт, флоат, стрингова итд.
најбољи бесплатни ДВД у ави претварач
П # 2) Која је разлика између метода нект () и нектЛине () класе Сцаннер?
Одговор: Метода нект () чита унос у размак и поставља курсор у исти ред након читања уноса. Метода нектЛине () међутим чита читав ред уноса до краја ретка, укључујући размаке.
П # 3) Шта је хасНект () у Јави?
Одговор: Метода хасНект () је једна од метода Јава Сцаннер-а. Ова метода враћа труе ако Скенер има други токен на улазу.
П # 4) Да ли треба да затворите класу Скенер?
Одговор: Боље је, али није обавезно затворити класу Скенер, јер ако није затворена, основни Читљиви интерфејс класе Скенер обавља посао уместо вас. Компајлер ће можда трептати упозорењем ако није затворен.
Дакле, као добру праксу програмирања, увек затворите скенер.
П # 5) Која је сврха система.ин у класи Сцаннер?
Одговор: Коришћењем „Систем.ин“ у класи Сцаннер омогућавате скенеру да чита тастатуру повезану са стандардним улазним подацима.
Закључак
У овом упутству видели смо класу Сцаннер и све детаље о њој, укључујући АПИ и имплементацију. Класа скенера користи се за читање улазних података са различитих медија као што су стандардни улаз, датотеке, ИО канали, низови са / без регуларних израза итд.
Иако Скенер није врло ефикасан начин за читање уноса, то је један од најлакших начина. Скенер вам омогућава читање уноса различитих примитивних типова података као што су инт, флоат, низови итд. Када низове користите као улазни објекат за класу Скенер, можете са њим користити и регуларне изразе.
Класа скенера такође вам омогућава читање уноса подударањем неког узорка или граничника.
Да закључимо, употреба класе Сцаннер у Јави остаје најлакши и најпожељнији начин читања уноса.
=> Овде погледајте савршен водич за обуку за Јава.
Препоручено читање
- Шта је Јава Вецтор | Водич за Јава векторску класу са примерима
- Јава Арраи Цласс Туториал - јава.утил.Арраис Цласс са примерима
- Водич за ЈАВА за почетнике: 100+ практичних Јава видео водича
- Јава интерфејс и лекција са апстрактним часовима са примерима
- Водич за Јава рефлексију са примерима
- Назубљени низ у Јави - Водич са примерима
- Водич за дужину Јава низа са примерима кода
- Јава Стринг Водич | Јава стринг методе са примерима