Английские буквы

  • 10
  • Недоступна
В метод main первым параметром приходит имя файла. Посчитать количество букв английского алфавита, которое есть в этом файле. Вывести на экран число (количество букв). Закрыть потоки.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (229)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
среда, 08:29
в файле на котором тестил, написал azAZ, дальше, когда известны диапазоны нужных букв... нужно обязательно профукать 1 попытку забыв поменять входные данные со своего файла на args[0]
Sergey Pyatygin20 уровень, Екатеринбург
23 июля, 09:53
А я и не знал, что можно вот так значения в переменную мэйна добавлять! Очень интересно и здорово!
Ivan18 уровень, Череповец
23 июля, 23:16
Странно, была уже задача на эту тему
среда, 08:30
ее 3к+ людей пропустили судя по тому сколько людей сделало ее и сколько все остальные задачи
Alukard19 уровень, London
29 июня, 15:25
У меня почему то в голову не пришла проверка по байтам, в итоге замутил в первый раз проверку регуляркой [a-zA-Z]. Решил с первого раза. Сказать что офигел ничего не сказать. Кстати 17380 на данный момент.
Борис Скворцов22 уровень, Киев
8 июля, 13:07
Не поверишь, у меня точно такое же чувство!!! Первый раз сам решил использовать регулярку (а не подсмотреть за кем-то), и получилось. Я в шоке. Только я сначала .toLowerCase() сделал, а потом уже .matches("[a-z]"). (17476-й)
среда, 08:31
+370 за месяц
Vitalachka22 уровень, Лондон
12 июня, 16:23
использовала класс java.util.regex.Pattern очень понравилось его использовать. всё чисто, код симпатичен. Были идеи сравнивать по АНСИ коду, но набрела на этот класс и попробовала. Pattern Тут пример использования
Игорь Birt19 уровень, Тирасполь
6 июля, 20:15
Привет, скинь пожалуйста в личку свой вариант кода данной задачки.
Alukard19 уровень, London
7 июля, 07:53
Прива, у меня так вышло. GitHub
Борис Скворцов22 уровень, Киев
8 июля, 13:10
Почему валидатор пускает это без inputStream.close(); ?
Alukard19 уровень, London
8 июля, 13:56
try catch с ресурсами. почитай
Борис Скворцов22 уровень, Киев
8 июля, 14:10
Спасибо, почитаю!
Yulia26 уровень
10 июня, 00:59
И только я поняла задачу как "найти сколько букв алфавита используется в этом файле и вывести их число". Моя невнимательность зашкаливает. Дурная привычка начинать решать задачу толком не разобравшись в условии.
Yuriy Kulinich19 уровень, Киев
3 июня, 11:34
Упустил этот момент: Сергей Пыров, имеются в виду параметры которые подаются в main при запуске программы. Чтобы их установить в IDEA, тыкаем: Run - Edit Configurations и вписываем аргументы через пробел в поле Program arguments. Для этой задачи у нас один аргумент - имя файла, т.е. пишем в это поле например: 123.txt Далее в программе, используем этот аргумент, у нас он первый, поэтому будет args[0]. FileInputStream fileReader = new FileInputStream(args[0]);
Neo26 уровень, Zion
29 мая, 11:01
Ну это маразам.
for (byte i : list) {
     if ((i > 97 && i < 123) ^ (i > 65 && i < 91)) count++;
 }
Считает идеально, но валидатор хочет говнокода попить, походу
Василий Бабин25 уровень, Москва
29 мая, 17:00
У Вас по одному байту теряется в каждой из проверок. У меня прошло:
for (int i = 0; i < count; i++) {
	f ((buffer[i] >= 65 && buffer[i] <= 90) || (buffer[i] >= 97 && buffer[i] <= 122)) {
		sumOfEnglishLetters++;
	}
}
Neo26 уровень, Zion
29 мая, 17:17
А почему теряется байт, можешь обьяснить ? Ведь проверка в ручную проходила норм, считала правильно
Василий Бабин25 уровень, Москва
29 мая, 17:49
Вы сравниваете i > 97 в итоге 97 не попадает, так как не больше 97, а равно. Если бы Вы написали i > 96, тогда прошло бы. Та же ситуация и с i > 65.
Neo26 уровень, Zion
29 мая, 17:54
Окец, спасибо. Просто на практике Z и z считались
Василий Бабин25 уровень, Москва
29 мая, 18:21
Странно, по идее не должны были.
Василий Бабин25 уровень, Москва
29 мая, 18:25
Тупанул я немного в прошлом ответе Вам, 65 и 97 - это не Z и z, а это A и a.
Neo26 уровень, Zion
29 мая, 18:34
да, тру, спасибо )
Яков22 уровень, Москва
15 июня, 17:17
char simvol = (char) i; if(((simvol >= 'a') && (simvol <= 'z')) || ((simvol >= 'A') && (simvol <= 'Z'))) { summa ++; }
Ксенія Українка22 уровень, Киев
22 июня, 12:21
патамушо
int a = (int) 'ъ';
byte b = (byte) a;
char c = (char) b;
вот такими несложными манипуляциями ъ превращается в J а если бы валид был человеком - то утонул бы в говнокоде)))
Шамиль20 уровень, Кисловодск
28 мая, 17:35
У меня возник один вопрос странноватый может быть на этом уровне наверное))) но куда нам без странностей (все глупые вещи на земле делаются с умным выражение лица) Я использовал BufferedReader и всегда буду им пользоваться с таким уровнем задачках (и вам советую). Короче вопрос:
FileInputStream fileIS =new FileInputStream(args[0]);
BufferedReader reader=new BufferedReader(new InputStreamReader(fileIS));
Закрыл fileIS Закрыл reader, а вот new InputStreamReader(fileIS) автоматический закрывается?🤭
Василий Бабин25 уровень, Москва
29 мая, 17:04
Думаю, достаточно было бы закрыть только fileIS.
Ксенія Українка22 уровень, Киев
22 июня, 12:22
да, BufferedReader обвертка InputStreamReader
Илья Джерихов19 уровень, Москва
16 июля, 14:12
Так может уже стоит использовать FileRead(args[0])? постановка вроде не противоречит...
Ivan18 уровень, Череповец
23 июля, 23:28
Для потомков) Важный момент: Если вы соединили несколько потоков в цепочку, метод close() достаточно вызвать только у одного из них: он вызовет его у своего источника данных и т.д., пока не дойдут до финального потока с данными. https://javarush.ru/quests/lectures/questsyntaxpro.level15.lecture02
Шамиль20 уровень, Кисловодск
28 мая, 17:26
решение есть конечно в одну стр. используя готовые методы но Валя примет или нет не знаю по этому решил примитивно (я думаю в процессе обучения это полезнее) дело не в этом верите не верите но Валя это не приняло сказала что я не считаю прописные
if (((int)chars[i]>64 && (int)chars[i]<91)||
   ((int)chars[i]>96 && (int)chars[i]<123)) lCount++;
А Вот это приняло
if (((int)chars[i]>64 && (int)chars[i]<91)||((int)chars[i]>96 && (int)chars[i]<123)) lCount++;
Vitalachka22 уровень, Лондон
12 июня, 16:28
У меня плохо с глазками? они одинаковые
Sergey22 уровень
18 мая, 10:53
Почему валидатор не принимает решение с использованием Character.isLetter() метода?
Vitalachka22 уровень, Лондон
12 июня, 16:26
У меня принял
Ксенія Українка22 уровень, Киев
22 июня, 12:25
а после Character.isLetter() потом учнялся на инглиш?