Блог
Меню сайта

Форма входа

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Календарь
«  Декабрь 2013  »
Пн Вт Ср Чт Пт Сб Вс
      1
2345678
9101112131415
16171819202122
23242526272829
3031

Приветствую Вас, Гость · RSS 04.07.2025, 09:12

Главная » 2013 » Декабрь » 12 » Класс Scanner в Java
17:40
Класс Scanner в Java
Класс Scanner в языке программирования Java является дополнением к классу Formatter. Объекты класса Scanner читают форматированный ввод и преобразуют его в двоичное представление. Они могут использоваться для чтения данных с консоли, из файла, строки или любого другого источника, реализующего Интерфейсы Readable (добавленный в Java 2 версии 5.0) или ReadabieByteChannei. Например, можно применять класс scanner для чтения числа, введенного с клавиатуры и присваивания этого значения переменной. Хотя такие операции всегда были возможны, класс scanner существенно упрощает этот процесс. Как Вы увидите, класс scanner, несмотря на свои богатые функциональные возможности, очень прост в использовании. Создав объект типа Scanner, очень просто использовать его для чтения форматированных входных данных. Как правило, объект класса Scanner читает лексемы (tokens) из базового источника, который вы задали при создании объекта типа Scanner. Применительно к классу Scanner, лексема — это порция вводимых данных, обособленная набором разделителей, по умолчанию пробелами. При считывании лексема сопоставляется с конкретным регулярным выражением (regular expression), задающим формат ввода. Хотя класс scanner разрешает определять собственный тип выражения, соответствие которому будет проверяться в последующих операциях ввода, в нем содержится много предопределенных образцов, соответствующих базовым типам, таким как int и double, и строкам. Следовательно, зачастую Вам не придется формировать образец для проверки соответствия вводимых данных.
Обычно для использования класса scanner необходимо выполнить следующие шаги.

1.   С помощью одного из методов hasNextX класса Scanner определить, доступна ли для ввода порция данных типа х.
2.    Если да, считать ее с помощью одного из методов nextX класса scanner.
3.    Повторять процесс, пока не исчерпан поток ввода.

Как показывает описанный процесс ввода, в классе scanner определены два набора методов, позволяющих читать входные данные. Первый содержит методы hasNextX, перечисленные в табл. 9.7. Эти методы определяют, доступны ли для ввода данные заданного типа. Например, вызов метода hasNextint() возвращает true, только если следующая лексема, предназначенная для считывания, — целое число. Если данные указанного типа доступны, они считываются с помощью одного из методов nextX. В приведенном далее фрагменте показано, как прочесть последовательность целых значений с клавиатуры:

Scanner conin = new Scanner(System.in);
int i;
  // Считывает последовательность целых чисел
whilefconin.hasMextlnt()) {
  i = conin.nextlnt();
}


    Цикл while прекращается, как только очередная лексема — нецелочисленная. Следовательно, цикл прерывает чтение целых чисел, как только обнаруживает нецелое число в потоке ввода. Если метод next не может найти данные того типа, которой он ищет, он генерирует исключение типа NoSuchElementException. Следовательно, лучше убедиться в том, что данные искомого типа доступны для считывания с помощью метода hasNext прежде, чем вызывать соответствующий метод next. Включение класса Scanner в язык Java превратило прежде утомительное и скучное занятие в легкое и приятное. Для того чтобы понять, почему это произошло, рассмотрим несколько примеров.

  Пример
import java.util.*;
  class AvgNums {
  public static void main(String args[]) {
    Scanner conin = new Scanner(System.in);
      int count = 0;
    double sum = 0.0;
      System.out.println("Enter numbers to average.");
      // Read and sum numbers.
    while(conin.hasNext()) {
      if(conin.hasNextDouble()) {
        sum += conin.nextDouble();
        count++;
      }
      else {
        String str = conin.next(); 
        if(str.equals("done")) break;
        else {
          System.out.println("Data format error.");
          return;
        }
      }
    }
      System.out.println("Average is " + sum / count);
  }
}

Приведенном примере числа считываются с клавиатуры и суммируются до тех пор, пока пользователь не введет строку "done". Эта строка прекращает ввод и на экран выводится среднее арифметическое введенных чисел. Далее приведен образец вывода программы:

Enter numbers to average.
1.2
2
3.4
4
done Average is 2.65

В приведенной выше программе считываются числа, пока не обнаружена лексема, которая не соответствует корректному значению типа double. Когда это происходит, программа проверяет, не равна ли эта лексема строке "done". Если это так, программа завершается корректно. В противном случае выводится сообщение об ошибке.
Обратите внимание на то, что числа читаются с помощью вызова метода nextDouble(). Этот метод считывает любое число, которое может быть преобразовано в тип double, включая целые значения, такие как 2, и значения с плавающей точкой, такие как 3.4. Таким образом, у числа, считываемого методом nextDouble(), необязательно должна быть десятичная точка. Этот базовый принцип положен в основу всех методов next. Они могут находить соответствие и читать данные любого формата, который способен представлять данные требуемого типа. Приятная особенность, свойственная классу Scanner, заключается в том, что способ, применяемый для считывания данных из одного источника, используется для чтения и из другого источника.
Просмотров: 40248 | Добавил: livebook | Рейтинг: 1.0/1
Всего комментариев: 29
47 CatherinaNup  
0
Ηеllоǃ
Ρеrhaps my messagе iѕ too ѕpecifіс.
But my older sistеr fоund a wonderful mаn hеre and theу have а grеat rеlаtіonshiр, but whаt аbоut me?
Ι аm 23 yearѕ old, Catherіnа, from the Czеch Republiс, know Εnglіѕh lаnguage аlѕo
And... better tо sаy іt immеdіatеlу. Ι am bisexuаl. I аm not ϳеalous of аnothеr wоman... esресіаllу if wе makе lovе tоgethеr.
Ah yеѕ, I cоok vеry tastу! and I lоve not оnly сoоk ;))
Ιm rеal girl and lookіng for serіоuѕ аnd hоt rеlаtiоnshір...
Anywаy, уоu сan find my рrofіlе hеre: https://1pt.co/alka8

46 LucilleTut  
0
https://clck.ru/36EvrK

45 RobertExemn  
0
https://clck.ru/36Evkh

44 StevenUnUmn  
0
very good

43 Irinapoent  
0
https://clck.ru/36EvWq

42 RobertExemn  
0
https://clck.ru/36Ew5Z

38 Nicholeanivy  
0
Quality posts is the secret to interest the visitors to pay a visit the website, that's what this website is providing.

28 Neeniasse  
0
MojoHeadz label https://www.reddit.com/user/mojoheadzreview/comments/g3ojio/mojoheadz_records_asking_to_sign_my_tracks/ One of the rare record labels that releases music for strict use in DJ sets, Mojoheadz focuses on techno, house, happy hardcore and psytrance music.Check my review..

27 itahaf  
0
Ciao a tutti vengo dall'italia

26 itahaf  
0
Ciao a tutti vengo dall'italia

25 Beerislooov  
0
https://ctftime.org/team/77073< [b]ROBLOX Hack 2019 MAY[/b]

kw:
Free Robux Cheat 2019
Roblox Generator 2019
Roblox Code Generator 2019
Free Robux No Verify 2019
Roblox Generator App 2019
Roblox Resources Hack 2019

24 Beerislooov  
0
https://dotmaui.com/pastebin/vtEgTYY2< [b]ROBLOX Hack 2019 MAY[/b]

kw:
Roblox Cheat 2019
Roblox Robux Generator Online 2019
Robux And Tix Generator 2019
Get Free Robux Now 2019 May
How To Get Free Robux 2019
Roblox Robux Generator 2019

23 HilarySoago  
0
We are glad to see you in our midst I want to cum in my pussy then fuck me my nickname (Isena72)

Copy the link and go to me.... bit.ly/2sp5gj7

8520926

22 Hollydig  
0
Good afternoon what about oral sex you tell me to Cuny and I'll give you a Blowjob my nickname (Margarita94)

Copy the link and go to me.... bit.ly/2s4zWdO

8682015

21 uscsaseale  
0
iphone silikonhülle handyhüllen für iphone http://www.business-pro.info original iphone hülle iphone hülle bedrucken lassen günstig schöne iphone hüllen iphone hülle mit foto

20 ValeraTus1980  
0
new

19 Kenneththers  
0
I've visited themeforest before and then I stumbled upon a few intriguing listings, such as this one: https://themeforest.net/category/wordpress/?term=beach+commercial+breast+expansion As you can see there aren't any templates on that subject matter yet still the webpage exists - with a heading and some text, etc. What exactly are they aiming to do? And why would they even try? I'm confused.

18 DavidZen  
0
Приветствую

17 BradliHoith  
0
кредит срочно 500000 https://xn--d1abkf4ap.xn--80aswg/zaimy/nakartu/page/3/ кредит 100000 срочно онлайн
где взять срочно кредит с плохой историей
https://кредит.сайт/city/kurgan/
повер банкhttps://кредит.сайт/city/bryansk/
кредит условия в 2017 году процентная ставкарасчет кредита в банкеhttps://кредит.сайт/city/kostroma/
https://кредит.сайт/city/nizhniy-tagil/page/3/


банкоматы хоум кредит
https://кредит.сайт/city/novomoskovsk/

кредиты в конце года

14 JohnnieFub  
0
значение судебной экспертизы в уголовном процессе

ооо центр земельного права

Delete this!
Удали это!

11 Johnniescunk  
0
Скачать музыку mp3 http://0daymusic.org

10 JosephSat  
0
Я хорошо разбираюсь в этом. Могу помочь в решении вопроса. Вместе мы сможем найти решение.
cpadollar.cf
партнёрские программы, каталог партнёрских программ, партнёрки, офферы, cpa, cpa сеть, cpa партнёрка, заработок в интернет, лучшая партнёрская программа, монетизация трафика

9 Ismaelled  
0
http://yod.ua - медицинский портал

8 Davidliz  
0
Rttvbcgmh pljqdxyco
http://www.1prikid.ru/koshelek-lison-kaoberg-9049 Кошелёк LISON KAOBERG
http://www.1prikid.ru/oblozhka-chanel-9013 Обложка CHANEL
http://www.1prikid.ru/koshelek-salvatore-ferragamo-78324 Кошелек Salvatore Ferragamo
http://www.1prikid.ru/zazhim-dlia-deneg-6561 Зажим для денег
http://www.1prikid.ru/portmone-s.t.-dupont-muzhskoe-7671 Портмоне S.T. Dupont мужское

6 SvetlanaTut  
0
Подскажите, плиз, где можно найти хороший форум по аппаратной косметологии. Гуглю целый день, рекомендовали форум косметологов http://00rf.ru/forum/index.php?topic=170.0 не могу зарегаться . Подскажите, как авторизоваться, плиз.

5 Dorazen  
0
hi!

4 RaymondCoose  
0
My name is Harry Goldman. Extraordinarily good locality! Staggering size!
http://sev-power.ucoz.ru/index/8-38322
http://hytec.cl/phpbb/memberlist.php?mode=viewprofile&u=3241
http://dakeronthai.net76.net/profile.php?lookup=16408
http://www.hyjiashiqi.com/home.php?mod=space&uid=135060
http://qipeizx.com/club/home.php?mod=space&uid=296147

3 RogerNep  
0
Всем кто соображает, о смысле поста! Абузоустойчивый регистратор доменов - российский язык сайта, быстрый саппорт, хорошие расценки, различные плюшки. Хостю у них фарму два года, никаких косяков, все кляузы отправляют в утиль. Ищешь гарантированный, безабузный хостинг, смотри - https://goo.gl/q13Adc или в профиле.

1 Billythype  
0
+++ BUY fifa coins online - http://fifa-coins.online - GET THEM HERE +++

http://s29.postimg.org/oxswnwmd3/p1_50304113038603.jpg
Buy Fifa 17 Coins, fifa 17 Ultimate Team account in our store is your wisest alternative.Fifa 17 coins and Fut 17 Account for all platforms can be found in full stocks with most cost-effective price and instant beginning.Why we are the best fifa 17 coins sellers and the most professional? We were promoting fifa 17 coins and fifa 17 facets account for decades and we've the choicest team aiding you in case you buy fifa 17 coins. http://fifa-coins.online - get Fifa Coins are no other fifa 17 coins online shops which are less expensive than us. validated legit reseller !!!

Имя *:
Email *:
Код *:
Copyright exshark © 2025
Сделать бесплатный сайт с uCoz