Пробелы

  • 10
  • Недоступна
В метод main первым параметром приходит имя файла. Вывести на экран соотношение количества пробелов к количеству всех символов. Например, 10.45. 1. Посчитать количество всех символов. 2. Посчитать количество пробелов. 3. Вывести на экран п2/п1*100, округлив до 2 знаков после запятой. 4. Закрыть пото
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (219)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Борис Скворцов18 уровень, Киев
вчера, 13:39
Для сравнения строки с пробелом можно использовать регулярочку .matches("\\s"). Только не уверен, что моё решение считывать в строку самое удобное, может кто то делал по другому.
Artem19 уровень
позавчера, 14:11
Можно по разному убирать символы после запятой, но я просто оставлю это здесь, может кому понадобится как округлять double.
Сергей22 уровень, Харьков
29 June, 17:19
Подскажите плиз файл исходник содержит текст: a Asdf Запускаю код: byte [] buffer = new byte[inputStream.available()]; while (inputStream.available() > 0) { inputStream.read(buffer); } for (int i = 0; i < buffer.length; i++) { System.out.print(i + " соответствует:" + buffer[i] + " "); } Выводит в консоль: 0 соответствует:-17 1 соответствует:-69 2 соответствует:-65 3 соответствует:97 4 соответствует:32 5 соответствует:65 6 соответствует:115 7 соответствует:100 8 соответствует:102 Что это за минусовые значения: 0 соответствует:-17 1 соответствует:-69 2 соответствует:-65
Игорь Birt18 уровень, Тирасполь
позавчера, 12:59
Размерность byte какая? не -128...127 ??? вот тебе и DEC представление этих байт. Сделал бы массив int'ов получил бы в соответствие значения 0...255
Vlad27 уровень
20 June, 16:44
Долго искал ошибку, пока не поменял " " на ' '
Vitalachka20 уровень, Лондон
12 June, 17:22
я сделала с Math.ceil(); вариантов куча, попробовала так. Но со второй попытки из-за своей невнимательности, считала не пробелы а переносы 🤷🤦‍♀️
Андрей23 уровень, Москва
22 May, 17:12
Выбрал такой способ System.out.println(String.format("%.2f", f))
terrorist8626 уровень, Николаев
29 May, 06:39
А не проще было бы System.out.printf("%.2f", f)?
Андрей23 уровень, Москва
29 May, 13:59
Однозначно, но тогда этот метод не юзал. Последние задачи 18 и 19 уровень исправили этот недочет) Так что, кто не дошел, готовьтесь - format+регулярки вам запомнятся надолго)
Иван Плотников25 уровень, Санкт-Петербург
16 June, 12:24
Сделал с использованием System.out.printf. В консоль выводит с запятой вместо точки:
10,45
вместо:
10.45
Наученный горьким опытом, я был уверен, что валидатор докопается, но нет - всё нормально, принял.
Игорь Birt18 уровень, Тирасполь
позавчера, 13:01
Тем не менее, форматированием строки вы отрезали всё что идёт после второго знака, а надо было "округлить", пусть валидатор и принял.
Александр 25 уровень, Екатеринбург
20 May, 15:24
Да, хорошая задачка. Пришлось погуглить за округление. printf валидатор не принял, в итоге округлил так:
float ratio = (float) spaceCounter/totalCounter * 100;
DecimalFormat decimalFormat = new DecimalFormat("###.##");
System.out.printf(decimalFormat.format(ratio));
Wally Dator22 уровень, Чехов
25 May, 07:41
printf принял.
Александр 25 уровень, Екатеринбург
25 May, 15:07
Не всем одинаково везет. Вероятно ретроградный меркурий тому виной... :')
Wally Dator22 уровень, Чехов
25 May, 17:08
😀
Шамиль19 уровень, Кисловодск
28 May, 19:11
принимает
System.out.printf("%.2f",(double)pro/available*100d);
Alukard19 уровень, London
29 June, 16:04
Принимает
System.out.printf("%.2f", (float) countOne/sum*100);
xodavit25 уровень, Москва
Monday, 14:31
DecimalFormat decimalFormat = new DecimalFormat("###.##");
System.out.printf(decimalFormat.format(ratio));
выводит с запятой все равно 15,48. если же сделать "###:##" выведет тока 15:
Vitalik18 уровень, Москва
вчера, 15:30
Можно было сделать так: String decimalFormat = new DecimalFormat("#0.00").format(((symbolProbel * 1.0) / allSymbol) * 100); Может кому будет интересно, поможет.
Vaas22 уровень, Санкт-Петербург
20 May, 12:01
13 попыток из-за того, при работе с BigDecimal не хочет принимать последний пункт с закрытием потока. Мой совет: используйте DecimalFormat, кому интересно, могут прочитать тут.
Михаил25 уровень, Санкт-Петербург
12 May, 08:29
Округлил так: double newResult = new BigDecimal(result).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
Илья Соколов19 уровень, Москва
12 May, 08:17
в Java Head First стр. 324