Подсчет запятых

  • 10
  • Недоступна
С консоли считать имя файла. Посчитать в файле количество символов ',', количество вывести на консоль. Закрыть потоки. Подсказка: нужно сравнивать с ascii-кодом символа ','.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (71)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Tatyana Marmuzevich18 уровень, Минск
11 июля, 20:50
Has anyone checked if we get right number of comma signs? My code passed the validation, but it doesn't work right. I get answer=53 while I have only 2 commas in my file. (sorry for english).
Vgoose18 уровень, Москва
10 августа, 21:21
I tested on a real txt file with commas and other symbols. Everything is OK.
VK19 уровень, Киев
24 февраля, 13:44
сначала сравнивал с ; а надо было с запятой .__. я вообще вот так сделал))
int data = fileInputStream.read();

if (data == ',') {
    count++;
}
Пётр41 уровень, Москва
14 апреля, 13:01
Можно вообще без доп переменных
if (fis.read() == ',') count++;
позавчера, 10:41
Пётр а можете написать как будет с ascii ? Задачу решил по вашей подсказке но хочу увидеть и другие варианты решения . Написать можно в личку ;) . За ранее спасибо .
Dmytro Zhelezniak41 уровень, Харьков
5 февраля, 13:16
Код запятой 44, если не хотите тратить время на поиски таблицы ascii
Vaiki20 уровень, Минск
12 февраля, 15:01
спс
Николай29 уровень
21 февраля, 18:56
зачем это узнавать, если можно символ представить байтом и затем сравнивать байты?
byte b = (byte) (',');
S3R3N1TY37 уровень, Санкт-Петербург
31 января, 22:24
Можно найти код так
int code = (byte)',';
А потом просто в цикле
if(inputStream.read()==code)
                    count++;
Но лучше читать буфером, так как моим способом мы каждый раз обращаемся к диску за байтом, а это медленно.
Artur41 уровень
29 января, 10:55
Когда - нибудь я научусь закрывать потоки без напоминаний)
NewBuy25 уровень, Санкт-Петербург
4 апреля, 17:38
Но не сегодня...
Пётр41 уровень, Москва
14 апреля, 13:06
для этого есть try with resources
Vgoose18 уровень, Москва
10 августа, 21:16
но он пытается с try without notify :)
kin1641 уровень, Уфа
6 января, 12:07
/* Комментарий удален */
Erik Ghukasyan28 уровень
22 января, 12:52
А можно и без List. Сразу после чтения проверяй запятая ли
Artyom Popov19 уровень, Москва
30 июля, 08:36
ужасно громоздкое решение.
Виолетта19 уровень, Санкт-Петербург
12 августа, 18:38
Ну и зачем List вообще использовать, если можно просто счётчик поставить?
Vitaly Khan37 уровень
6 декабря 2018, 00:23
не забывайте делать проверку массива на null перед тем, как искать в этом массиве запятые. - распространенная ошибка! искать запятые легче всего так: == ','
юрий шидловский23 уровень, Киев
11 декабря 2018, 08:29
зачем здесь массив? считал-сравнил>добавл
Vitaly Khan37 уровень
11 декабря 2018, 10:18
побайтовое чтение - это очень дорогая с точки зрения времени операция. программа реализованная вашим способом будет неэффективной. на предыдущей лекции нам рассказали, что есть способ читать данные блоками. для этого используется массив байтов (буфер). это существенно повышает производительность программы.
24 сентября 2018, 19:25
ascii код символа ',' - 44. При считывании - if (inputStream.read() == 44) count++, где count - сами знаете что...
Oleg Shegula24 уровень, Днепр
10 сентября 2018, 20:02
пробывал читать имя файла через Scanner не проходит( Scanner scanner = new Scanner(System.in); BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); -так принимает
Александр Толкачёв22 уровень, Санкт-Петербург
11 сентября 2018, 12:48
валидатор отлично работает со сканнером
Andry Max35 уровень, Минск
8 августа 2018, 22:37
нашёл в комментах ниже. по моему доходчивое объяснение.
int code  = (int)',';
сам сразу сравнивал с символом, валидатор не пропускал...