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

  • 10
  • Недоступна
В метод main первым параметром приходит путь к файлу. Посчитать количество символов в файле, которые соответствуют буквам английского алфавита. Вывести на экран число (количество символов). Закрыть потоки.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (333)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Lafaed
Уровень 25
29 января, 08:17
1) инт каунт 2) строка англ букв 3) ну открыл файл 4) пока файл.реди 5) если строка букв.контеинс(стринг.велюеОф.чар(файл.рид).ловеркейс) каунт++ 6) принт каунт Вроде бы и не сложно, и наверное даже не медиум.
Сирожиддин
Уровень 31
15 декабря 2022, 07:41
char это по сути short. можно просто считанные FileInputStream -ом intы сравнивать с диапозоном заданным буквами
('a' <= letter && letter <= 'z') || ('A' <= letter && letter <= 'Z')
Tomhetted
Уровень 34
18 декабря 2022, 19:42
char это все-таки byte а не шорт, и зная ASCII табличку я сделал немножко по-другому
((unit >= 65 && unit <= 90) || (unit >= 97 && unit <= 122))
Зачем тут вообще городить ненужные хэшсэты, листы как в решении от авторов я не понимаю
Сирожиддин
Уровень 31
19 декабря 2022, 08:03
char хранится в 2 байтах Я просто к тому вел что необязательно знать ASCII табличку. Насчет решения авторов полностью солидарен
Vkt Pra
Уровень 25
1 января, 16:17
так же решіл
Andrey Dudin
Уровень 37
9 декабря 2022, 23:48
Вроде регуляркам нас уже обучили, а в правильном решении в ручную создают список английских букв...
Artur Kupchenko
Уровень 28
5 декабря 2022, 08:26
Решил подглядев у Шилдта. Просто наполняем arrayList char строчными буквами через цикл for, и сразу же сбрасываем шестой бит у строчных букв через побитовую операцию И. И не надо вручную вбивать все буквы. Круто)
Алексей
Уровень 32
30 ноября 2022, 11:30
Решил через циклы for(int i = 'a';i<='z';i++) и for(int i = 'A';i<='Z';i++). Проверку прошло.
Leon JlEOH
Уровень 32
20 ноября 2022, 03:27
Задача научила меня, что всё ж таки, имеет смысл прекратить делать из себя дебила, пытаясь прыгнуть через голову решая через жопу!!!
BlackGrizzli Team
Уровень 43
19 ноября 2022, 11:35
Читая условие сразу вспомнил про метод
Character.isAlphabetic(int x)
Но вот не задача, он и русские буквы туда приплетает. ОК доп условие наше int nameChar должно быть от 65 до 90 - это Заглавные АНГЛИЙСКИЕ БУКВЫ и от 97 до 122 соответственно это не заглавные по таблице Кодов символов ASCII. И в цикле во время чтения каждого символа плюсуем наш count, если все три условие true. Но кстати, если мы задаем конкретный диапазон кодов, метод нам уже не нужен !!! Но если прописать условие так
if (Character.isAlphabetic(i) && i>64 && i<123)
он все же нужен))
Андрей Федоров Android Developer
12 ноября 2022, 13:09
Оставлю это здесь)
String str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
Daniel CEO в BicycleInventionAcad
17 декабря 2022, 09:16
Тоже оставлю это здесь)
Pattern pattern = Pattern.compile("[a-zA-Z]");
Peter
Уровень 30
11 ноября 2022, 16:41
long result = builder.toString().toLowerCase().chars().filter(ch -> ch >= 'a' && ch <= 'z').count(); конечно валидатор такого не кушает, а вот набор букв 2 раза (большой и маленькой) и сравнение каждой из них - это правильное решение. Вот честно, уже третье задание тупо валидатор не пропускает нормальные решения. грустно
Mikhail Khanov
Уровень 22
6 января, 20:40
Ну почему же, вполне пропускает. Ищите ошибку в другом месте.
str.chars().filter(ch -> (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')).count();
Зашло на ура.
Grock
Уровень 29
2 ноября 2022, 15:53
Или так:
while (fR.ready()) {
Character ch = (char) fR.read();
Pattern pattern = Pattern.compile("[a-zA-Z]");
Matcher matcher = pattern.matcher(ch.toString());
if (matcher.find()) {  result++; } }