Java для начинающих. Урок 7: Ввод данных. Класс Scanner.
HTML-код
- Опубликовано: 22 авг 2024
- МОЙ НОВЫЙ КУРС: • Мой курс "Продвинутая ...
ПРАКТИКА НА JAVA: java-marathon....
На этом уроке Java для начинающих мы познакомимся с классом Scanner.
Реклама и сотрудничество: alishev.neil@gmail.com
Регистрируйтесь на курс "Продвинутая Java": ruclips.net/video/rRe1vT0SDD8/видео.html
Практикуйтесь в написании Java кода: java-marathon.tilda.ws
Ссылка с Тилды на чат-бота в телеграмм не работает!
Зачем вообще нужен скамер объясните пожалуйста
Ура! Наконец-то нашла того кто доступно объясняет для чайников. СПАСИБО!
То есть я даже не чайник (((
Чувак, ты мой кумир!!!Кучу сайтов обшарил в поисках понятного обучения, все было слишком тяжело, а ты хорошо и понятно объясняешь.Так держать)))
очень доступно и понятно, а главное последовательно. огромная благодарность за всю работу, не только данный урок!
Спасибо!
Спасибо большое за уроки, на джава раш я вообще ничего понять не могу, а ты объясняешь так понятно, будто я уже это изучал когда-то. Огромное спасибо за уроки!
Джава раш это для тех кто прочитал основы. Объясняют туго, половина материала не понятна, люди бросают потому что чувствуют себя чайниками, а надо всего лишь пересмотреть уроки,которые они подают и соответственно меньше людей будет бросать java.
@@DolphinArtem там в этом смысл чтоб ты долго проходил и платил бабосы каждый месяц думаю что ты тупой
@@MCLoveKherson я Вас не понял.Буквы, которые Вы пытаетесь расставить в слова не имеют законченного смысла в русском языке, пожалуйста, если Вам не сложно, будьте любезены, расставьте ещё запятые между предложениями в правильных местах, тогда мне будет, что Вам ответить. Спасибо!
@@DolphinArtem Я понял , что он написал. Как ты хочешь стать программистом , если ты даже не можешь понять текст , который не слишком правильно составлен?! Где логика твоя? И надо писать : будьте любезны, а не любезены..... Он говорит , что в этом и есть смысл, чтобы ты долго проходил всю программу и платил деньги, т.е ты мог бы пройти всю программу за 3 месяца по 60 долларов в месяц , и заплатил бы всего 180 , а в джаве раш заставляет тебя думать , что ты тупой. Следовательно ты проходишь тот же курс за 4-5 месяцев и платишь уже больше 180 долларов.
@@vusalvalizada2722 спасибо за пояснение для Артема. Я думал я понятно написал )
Стоит еще упомянуть, что конструкция
int x = 10 - это то же самое, что х = new int(10)
Мне пришлось к коллегам за помощью обращаться, чтобы этот нюанс разобрать; иначе не ясно, почему мы в предыдущих уроках переменные инициализируем одним способом, а для объекта сканнера внезапно используется другой.
Подписчиков и просмотров побольше тебе. Хорошо объясняешь
очень хорошие уроки. Все по делу. Никакой воды. Автору огромный Respect.
Спустя 8 лет, я нашел толковый курс по джаве. ItProger отдыхает просто
Друг мой, спасибо тебе огромное за твои уроки. Ты всё раскладываешь по полочкам.Случайно наткнулся на тебя и, видимо, повезло!
Как просто, понятно и кратко объяснили! Спасибо огромное!
2024 год, спасибо за Плейлист!!!
Чувак, ты великолепен! Спасибо, что доступно, понятно и емко!
Наиль, пожалуйста сделай видео про BufferedReader, BufferedWriter.
Как ехать по трассе без ухабов. Все гладко, всё понятно. Спасибо!
бро спасибо тебе большое, что за такой короткий ролик кладешь в голову основную информацию которая дает понимание как работает java!
Как дополнительный источник по Java просто супер, надеюсь дальше будет в видео про создание объектов более подробно.
Очень классно объясняете это то что я искал, спасибо вам)
Спасибо автору каналу! Далеко не каждый способен так грамотно преподавать... даже при наличии знаний в светлой голове. :)
Узнал больше чем в институте, у нас пришел на лекцию и разбирайся сам сколько влезет
Спасибо за видео, очень доступно
Лучшее объяснения за все время("по крайней мере для меня ");
Thanks man , finally Someone explain good enough to Understand . Awesome Job
Спасибо! Не нудно, доступно и понятно!
Кто те 28 человек которые дизлайк поставили? Если после такого объяснения кому то что то не понятно, то тут надо уже проблему в себе искать)
Я диз не ставил, но мне не понятно про сканнер
@@DolphinArtem он даёт пользователю возможность вводить данные, например: Введите ваш возраст: (пользователь пишет "20")
пересматриваю урок с 5:00
в уроке 7 я узнала:
- что есть такие слова которые IntelliJ IDEA не узнает и окрашивает красным. Таким словом является Scanner. А всё это изза того что это "слово" лежит в каком-то пакете который нам самим надо загрузить что бы IntelliJ IDEA стало знать слово Scaner. Для этого мы или на самом верху программы должны впечатать import java.util.Scanner; или нажать на красное слово и в появившемся меню нажать 4:37
- можно ввести цифру или текст с клавиатуры и прогрмма повторит за мной что я ввела
- если программа не ожидала что я введу текст, а ждала цифры - программа выдаст ошибку. и наоборот
Ахуеть всем похуй
По практиковал Scanner и узнал про встроенный импорт lang для класса String, который импортируется автоматически. Кстати не знал что String считается классом, думал это просто ссылочный строковый тип переменных. А вот оно как выходит. Like подписка)
Чувак, можешь объяснить мне как импортировать класс Scanner? Я новичок, и похоже у меня тупо другая версия интеллиджа
@@newrenaissance1479 Просто пишеш Scanner не доконца идея предложит какие классы ты можешь импортировать с подобным именем, выбираешь нужный себе с помощью стрелочек и нажми энтер, или мышкой кликни два раза по нужному тебе классу, идея сама подставит импорт. Или ставиш курсор на класс который хочешь импортировать и используешь шорткат alt+enter или alt+shift+enter)))
Или вручную импорт напиши сверху вне тела класса import java.util.Scanner;
Реально помог, сколько мучился со сканером
Отличное объяснение материала!
Спасибо тебе большое за уроки! Обнял!
Спасибо за уроки.
Отличные уроки!Спасибо.
СПАСИБО! Очень наглядно!
Все ясно, идем дальше)
Спасибо за урок! Если у кого-то вывело немпонятные символы типа вопросительных знаков - это проблема кодировки. попробуйтек поменять: Settings - Console - UTF8. (в моих настройках стояло windows-1251. заменил на UTF8 - все стало читаемо ;-) )
public class ThankYou {
public static void main (String [ ] args) {
System.out.println("Спасибо большое тебе за простоту обучения.Ты один из лучших учителей на Ютубе.Успехов тебе! ")
}
}
Поздравляю! Ровно 100 тыс!
Ты просто лучший!
thx 4 vid alishev !
Как ты это делаешь?)) долго не мог понять этот долбанный Scanner, а сейчас сижу в идее и играюсь этим сканером как ребенок)
Чувак, тебе надо полноценные курсы сделать.
Здравствуйте! Решил расширить познания об объекте Сканер, и поиграться с разными вариантами, написал такой алгоритм:
public class Input {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("Введите пожалуйста число ");
if (s.hasNextInt()) {
int nomer = s.nextInt();
System.out.println("Спасибо вы ввели: " + nomer);
} else if (s.hasNextLine()) {
String str = s.nextLine();
System.out.println("Дайте угадаю, вы ввели строку, а не число, и эта строка:" + str);
} else if (s.hasNextDouble()) {
double dbl = s.nextDouble();
System.out.println("Мне кажется вы ввели не число, а дробь, все же спасибо, эта дробь:" + dbl);
} else {
System.out.println("К сожалению мне не понятно, что вы ввели, попробуем еще раз?");
}
}
}
При введении сроки вместа числа, все работает верно, а вот если ввести число с запятой или точкой, 1.2 или 1,2 то все равно выводит сообщение, что вы ввели строку, отчего так? Ведь он должен проверить введено ли дробное число и вывести сообщение об этом?!
Если переместить условие с double до проверки строки, то конструкция работает, но только на дробь с запятой, например 1,2 , хотя выводит это число как 1.2 , какая то путаница..
Прост ты даун
Все понятно, спасибо!
Спасибо. Надеюсь впереди есть урок о BufferedReader ибо на многих ресурсах говорится, что сканер уже не актуален
Спасибо огромное!
Спасибо за урок!
Спасибо! Отлично обясняеш!
Пока что очень круто! Спасибо
спасибо!
очень крутое объяснение!
проблема с выводом русских букв в консоли. кодировка стоит utf-8, но все равно выдает символы.. как быть?
брат аслалам алекум это видео очень помогло я должен через час отправить домашка а я не знал как писать вот и сейчас отправлю
очень доступно..спасибо
Спасибо!
Наиль, а вы можете сделать отдельный подробный разжевывающий урок по обьектам, классам, методам, экземплярам класса и конструкторам?
Такие уроки есть. Смотрите дальше
Круто👍👍👍👍👍
Лучший!!!
До 7 урока все было понятно(
Спасибо
Спасибо! Хорошо объясняешь. Решил вот java подучить на будущее, сам только по работе бэкенд на oracle plsql занимаюсь.
Думал не взять ли подписку на JavaRush, но с таким хорошим каналом и парой книг думаю уже и не надо :)
Вот ты залечиваешь. Занимаешься бэкэндом и не знаешь Java... Че за чушь???
Почему пропускает ввод типа int?
String s = ...
String str = ...
int num =...
String str1 =...
У меня вводиться int только тогда, когда он стоит в самом конце(после всех String), а если между типом String стоит int, то ввод игнорируется. Как исправить эту ошибку?
Со всем уважением к автору отношусь, но черт, надеюсь в новых видео Вы начали готовить материал перед записью видео, потому что бред получается и приходится по несколько раз пересматривать момент, потому что "класс String отличается, потому что другие объекты вот так создаются, ну String тоже так создаётся. Объект String и другие похожие"
СПАСИБО
Наконец-то ву-ха-ха-ха, я создал решение дискриминанта.
Бро, классно рассказываешь, но нужно было немного последовательнее составлять видео.
Очень много "это вы узнаете позже". Такого в обучении быть не должно
Очень приятно слушать, все понято и доступно), по крайней мере пока....)) мне лично, с того урока не хватило примера ввода нескольких переменных для последующей операции над ними. Както происходит? Ещё раз спасибо за труд!
А что делать если я запускаю код, а там вместо фразы(введите число) -символы какие-то а текст не видно как в смайликах айфона которые прочитать с самсунга нельзя
Попробуй по английски написать, не все редакторы кода умеют работать с кириллицей.
Для Scanner в конце программы нужно писать "".close()"
а если не написать?
@@Das.Kleine.Krokodil думаю не актуально, но если не написать это может привести к утечке памяти.
Я же не единственный программируют в телефоне?
а так можно?
@@felixzhil конечно
Мазохист
@@middle.mp3 я тоже учусь на телефоне
На работе, в свободное время, пытаюсь изучать java
подскажите есть в какой то лекции подробное описание BufferedReader?? так как Джавараш говорит что использование Scanner не всегда возможно... поэтому сразу хочется использовать полноценный метод. Если у вас была такая лекция можете указать на видео? p.s. спасибо огромное за уроки, они просто очень крутые! низкий поклон!
Так он и в случае с String введет как число так и строку. Разве нет?
Не знаю, может лет 8 назад так работало, но сейчас эклипс предупреждает об утечке данных и предлагает записать через try в фигурных скобках параметр scanner
зачем вы класс string называете string. Только путаете людей. Называйте как нибудь типа stroka ну или s
хочу посмотреть про сканер, ты мне про стринг)
Получается мы, что мы объекту класса String присвоили переменную, образующуюся с помощью метода класса Scanner? Получается один класс может использовать метод другого?
Если ты ещё чекаешь комментарии, помоги с вводом. У меня есть такой код:
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner cin = new Scanner(System.in);
double firstNum = cin.nextInt();
String symbolInput = cin.nextLine();
double secondNum = cin.nextInt();
double resul;
int rest;
if(symbolInput == "/")
{
resul = (double)firstNum / secondNum;
System.out.print(resul);
}
else if(symbolInput == "%")
{
resul = (double)firstNum / secondNum;
rest = (int)(firstNum % secondNum);
System.out.print(resul + "(" + rest + ")");
}
}
}
После ввода symbolInput получаю исключение:
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:864)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at Main.main(Main.java:13)
double firstNum = cin.nextInt();
String symbolInput = cin.nextLine();
double secondNum = cin.nextInt();
Должно быть double firstNum = cin.nextDouble() или int firstNum = cin.nextInt()
• SiGmA • спасибо большое
Это уже ООП? :D
объясните, пожалуйста
Scanner s = new Scanner (System.in);
Scanner - класс
s - ссылается на объект класса Scanner
а что здесь объект?
ссылается не на объект класса, а объект ссылается на клаас. С = объект
Как тебе Mac Os? И вопрос он у тебя стоит на компютере от Aplle или на обычном Пк?
Здравствуйте, а почему сначала выводится строка "введите что-нибудь" и после происходит ввод данных, а не наоборот ?
Сначала же идёт инициализация объекта s.
Подскажите почему у меня не поддерживает русский язык в Sout? После запуска появляются вопросы, только на английском можно правильно проверить работу
java: no suitable constructor found for Scanner(no arguments)
constructor java.util.Scanner.Scanner(java.lang.Readable,java.util.regex.Pattern) is not applicable
в этом случае что делать?
Объясняют хорошо, но качество видео не очень. С сотового телефона не видно вообще, с компьютера более менее.
можете еще посмотреть пару видео уроков по JAVA на моем канале. Видео видно хорошо даже на телефоне.
Для чего надо во втором случае указывать интовую переменную если в первом любоу число выводится на экран. Спасибо за ответ
int x = s.nextInt(); введите число, если введем не число, то получим exeption. Введем число 10
System.out.println(5+x); так как задано числовое nextInt() - то ответ 15, 5 + число 10
("Вы ввели " + x) - заменил на (5+x)
______________________________________________________
String string = s.nextLine();
System.out.println(5+string ); так как задано строковое nextLine() - то ответ 510 , если ввели 10. 5 + строка 10
("Вы ввели " + string ) - заменил на (5+string )
Если у кого-то проблемы с тем, что русский язык не отображается в компиляторе, то они его спецом заменяют вопросиками или непонятной кашей. Перебрал все способы, работает только откатится до более старой версии.
Тебе надо кодировку винды черз ahcp вроде в кмд сменить на 1251, язык системы по умолчанию выбрать русский, в IDEA поставить первые 2 пункта в настройках кодировки 1251 а нижний в UTF 8 в правом нижнем углу нажимаешь на UTF 8 после рестарта и чистки кешей и все работает. Во всех способах обычно говорят, включить UTF 8 в настройках, но как ты уже догадался есть нюанс
Как тоже самое сделать, только с символами? С типом CHAR, как-то не получается.
а как сделать так, чтобы одновременно можно было ввести и int, и String?
так ну вроде пока что все понятно
Добрый день, в некоторых своих уроках Вы текстовые параметры пишете кириллицей, но когда я пишу в своей IDEA кириллицей, то после компиляции вместо текста выдает вопросы "??????", видимо нет поддержки кириллицы, подскажите пожалуйста как это исправить?
Семен Дмитров info.javarush.ru/Hamster/2014/12/12/Проблема-с-кодировкой-в-Intellij-Idea-.html
utf-8 без bomb
Почему не выходит из цикла?
Scanner s = new Scanner(System.in);
String str = "";
do
{
System.out.println("To exit enter 1");
str=s.nextLine();
System.out.println("You've entered " + str);
}
while (str != "1");
В приниципе сам понял. Вот так вот работает:
Scanner s = new Scanner(System.in);
String str;
do
{
System.out.println("To exit enter y");
str=s.nextLine();
System.out.println("You've entered " + str);
}
while (str.charAt(0) != 'y');
топ
как заставить его импортировать
а можно такой же урок только про BufferedReader, часто его использую, но все равно до конца не понимаю как он работает (например когда ввожу число через
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int a = reader.read();
оно вводит что угодно, но только не мое число, вот пытаюсь разобраться как ввести число и на что вообще способен BufferedReader)
надо int a = reader.readLine();
Чтобы ввести число в BufferedReader надо преобразовать переменную в int или любой числовой тип
Sring a =reader.readLine(); // первоначальная переменная типа String
int a2 = Integer.parseInt(a); //создаём вторую переменную типа int , где в качестве параметра указана ваша первая стринговая переменная
Или всё можно в одну строку написать
int a = Integer.parseInt(reader.readLine()); // так проще )))
Вопрос по классу Scanner. В следующем простом коде, scanner пропускает первую итерацию в цикле (ввод значения The card #1:) и просит ввести значение со второй итерации (The card #2:), подскажите пжл кто-нибудь, в чем может быть проблема?
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Input the number of cards:");
int card = scanner.nextInt();
String[] nomer = new String[card];
int counter=1;
for (int i = 0; i < card; i++) {
System.out.println("The card #" + counter + ":");
nomer[i] = scanner.nextLine();
counter++;
}
}
Результат:
Input the number of cards:
2
The card #1:
The card #2:
👍
Всем привет нечего не пойму ведь после строчик Scanner s = new Scanner(System.in) программа должа была дожаться ввода и только потом идет строчка кода - System.out.println("введите чтонибудь"). Почему программа работает как надо сначала выводиться надпись введите чтгнибудь затемм уже вводиться туда хотя в програме все написано в обратном порядке ???
Потому что new только сообщило, что нужно ссылаться на класс Scanner. Если бы сразу после этого мы написали nextInt, например, то выполнилось бы раньше, чем строка вывода.
Пример из реальной жизни:
Нам дали чистый лист бумаги, где должен быть написан список продуктов.(Scanner scan = new Scanner(System.in))
Говорят сходи в магазин(System.out.print(“Сходи в магазин”))
Ты говоришь, что там ничего не написано. Отвечают: “Давай листок запишу” и записывают, что нужно купить(int spisok = scan.nextInt();)
как делать бесконечный сртоки scanner
я не понил
Привет не могу понять зачем нам нужно создавать новый объект ? Каким образом он должен нам помочь и в чем?
А что из себя представляет сам сканер, который мы используем в программном коде? Это и есть объект, который является экземпляром класса Scanner. Иными словами, это абстракция реального сканера, только выраженная в терминах языка программирования Java.
Переменная int по русски "ште" . ахахаха штееее????
Когда пишу Scanner он не светится красным и не предлагает импортировать util, когда пишу System.in подчеркивается красным и что то про невозможность преминения Scanner
import java.util.Scanner; Должна быть первой cтрокой
TheSAiBOT спасибо
помог
переменная запускает метод через оператор "точка" ? Правильно я понимаю ?
+Алексадр Кувшинов метод запускается на объекте класса или на самом классе, если этот метод статический, но никак не на переменной
Но как? Что делает точка?
Точка - это разделитель. "Прочитать" это можно примерно следующим образом: посылаем сообщение объекту с запросом на выполнение определённого действия (метода). Строчку s.nextLine() можно прочитать как объектКлассаСканер.некотороеДействие();
@@alishevN нихрена не понятно что написал