Подсчитать количество чисел в строке
Добрый вечер! Подскажите, каким образом можно подсчитать количество чисел в введенной строке?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
package Application; public class Lab_2 { public static void main(String[] args) { String My_string = "кофе 300;чай 500;какао 350;кофе 456"; String[] s = My_string.split(" "); int sum = 0; for (int i =0; i s.length; ++i) { sum +=Integer.parseInt(s[i]); } System.out.print(sum); } }
Лучшие ответы ( 2 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Подсчитать количество отрицательных чисел среди данных в строке чисел
Всем привет, пишу впервые надеюсь поможете. Напишите программу, которая подсчитывает количество.
Подсчитать количество чисел в произвольной строке
Помогите пожалуйста Нужно подсчитать кол-во чисел в произвольной строке , не цифр а чисел

Подсчитать количество чисел в каждой строке файла
мне нужно на СИ: Дан текстовый файл, состоящий из одной или нескольких строк. Каждая тсрока файла.

Подсчитать количество чётных чисел в каждой строке массива
Дан массив С(N,N). Подсчитать: а). Количество чётных чисел в каждой строке массива. б). Количество.
Am I evil? Yes, I am!
![]()
![]()
16119 / 9755 / 2730
Регистрация: 21.10.2017
Сообщений: 21,624

Сообщение было отмечено W014ara как решение
Решение
W014ara, судя по коду, ты пытаешься подсчитать сумму чисел в строке.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
public static void main(String[] args) { String my_string = "кофе 300;чай 500;какао 350;кофе 456"; Pattern p = Pattern.compile("(\\d+)"); Matcher m = p.matcher(my_string); int sum = 0, count = 0; while (m.find()) { sum += Integer.parseInt(m.group()); count++; } System.out.println("Количество чисел: " + count); System.out.println("Сумма: " + sum); }
2495 / 1944 / 486
Регистрация: 17.02.2014
Сообщений: 9,238

Сообщение было отмечено W014ara как решение
Решение
1 2 3 4 5 6 7 8 9 10 11
public static void main(String[] args) { String My_string = "кофе 300;чай 500;какао 350;кофе 456"; String [] strBox = My_string.split(";"); int sum = 0; String [] numsFor; for (String tmpStr : strBox) { numsFor = tmpStr.split(" "); sum += Integer.valueOf(numsFor[1]); } System.out.print(sum); }
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Подсчитать количество чётных чисел в каждой строке массива
1) Дан массив С(N,N). Подсчитать: а). Количество чётных чисел в каждой строке массива. б).
Подсчитать количество чётных чисел в каждой строке массива
Дан массив. Подсчитать: а). Количество чётных чисел в каждой строке массива. б). Количество.
Подсчитать количество чисел (число — последовательность цифр) в данной строке
Написать программу для решения поставленной задачи Само задание: Дана строка символов.
Посчитать количество чисел в списке. Java
Для подсчета количества чисел в списке на Java можно использовать следующий код:
java
List list = Arrays.asList(1, «two», 3.0, 4, 5.5, «six»);
int count = 0;
for (Object obj : list) if (obj instanceof Number) count++;
>
>
System.out.println(«Количество чисел в списке: » + count);
Здесь мы создали список, содержащий разные типы данных, включая числа. Затем мы проходимся по каждому элементу списка и проверяем, является ли он числом. Если это так, то увеличиваем счетчик на 1. В конце выводим количество чисел на экран.
Надеюсь, это решение поможет тебе в решении данной задачи на Java.
Переписать другими словами
Написать сочинение по запросу
Или попробуйте другие режимы нейросети.
Считать количество чисел в списке легко с помощью нашей нейросети онлайн! Наш инновационный сервис может быстро обработать такие задачи, которые раньше занимали много времени и усилий. Просто загрузите ваш список в наш сервис, и получите результат мгновенно.
Наша нейросеть пишет текст самостоятельно, на основе алгоритмов машинного обучения. Это значит, что вы можете наслаждаться быстрой и точной обработкой данных, не тратя своё время на рутинную работу. Попробуйте нашу нейросеть уже сегодня, и вы увидите, как она может оптимизировать ваши процессы!
Количество цифр в целом числе в Java
В этом кратком руководстве мы рассмотрим различные способы получения количества цифр в Integer в Java.
Мы также проанализируем различные методы, чтобы выяснить, какой алгоритм лучше всего подходит для каждой ситуации.
2. Количество цифр в целом числе
Для обсуждаемых здесь методов мы рассматриваем только положительные целые числа. Если мы ожидаем какой-либо отрицательный ввод, то мы можем сначала использовать Math.abs(number) перед использованием любого из этих методов.
2.1. Строковое решение
Возможно, самый простой способ получить количество цифр в Integer — преобразовать его в String и вызвать метод length() . Это вернет длину строкового представления нашего числа:
int length = String.valueOf(number).length();
Однако это может быть неоптимальным подходом, поскольку этот оператор включает выделение памяти для строки для каждой оценки. JVM должна разобрать наш номер и скопировать его цифры в отдельную строку, а также выполнить ряд других различных операций (например, сохранить временные копии, обработать преобразования Unicode и т. д.).
Если у нас есть только несколько чисел для оценки, мы можем использовать это решение, потому что разница между этим и любым другим подходом будет незначительной даже для больших чисел.
2.2. Логарифмический подход
Для чисел, представленных в десятичной форме, если мы возьмем их логарифм по основанию 10 и округлим его в большую сторону, мы получим количество цифр в этом числе:
int length = (int) (Math.log10(number) + 1);
Обратите внимание, что log 10 0 любого числа не определен, поэтому, если мы ожидаем каких-либо входных данных со значением 0 , мы также можем поставить проверку для этого.
Логарифмический подход значительно быстрее, чем подход, основанный на String , поскольку ему не нужно проходить процесс преобразования данных. Это просто включает в себя простой, прямой расчет без какой-либо дополнительной инициализации объекта или циклов.
2.3. Повторное умножение
В этом методе мы возьмем временную переменную (с инициализацией 1) и непрерывно умножим ее на 10, пока она не станет больше нашего числа. Во время этого процесса мы также будем использовать переменную длины , которая будет отслеживать длину числа:
int length = 0; long temp = 1; while (temp number) length++; temp *= 10; > return length;
2.4. Деление со степенью двойки
Если мы знаем диапазон нашего числа, то мы можем использовать вариант, который еще больше уменьшит наши сравнения. Этот метод делит число на степени двойки (например, 1, 2, 4, 8 и т. д.):
int length = 1; if (number >= 100000000) length += 8; number /= 100000000; > if (number >= 10000) length += 4; number /= 10000; > if (number >= 100) length += 2; number /= 100; > if (number >= 10) length += 1; > return length;
Он использует тот факт, что любое число может быть представлено сложением степеней двойки. Например, 15 можно представить как 8+4+2+1, которые являются степенями двойки.
Для 15-значного числа мы бы сделали 15 сравнений в нашем предыдущем подходе, по сравнению с четырьмя в этом методе.
2.5. Разделяй и властвуй
Это, пожалуй, самый громоздкий подход по сравнению со всеми другими, описанными здесь; однако это также и самое быстрое , потому что мы не выполняем никакого преобразования, умножения, сложения или инициализации объекта.
Мы можем получить ответ всего за три-четыре простых оператора if :
if (number 100000) if (number 100) if (number 10) return 1; > else return 2; > > else if (number 1000) return 3; > else if (number 10000) return 4; > else return 5; > > > > else if (number 10000000) if (number 1000000) return 6; > else return 7; > > else if (number 100000000) return 8; > else if (number 1000000000) return 9; > else return 10; > > > >
Как и в предыдущем подходе, мы можем использовать этот метод, только если знаем диапазон нашего числа.
3. Сравнительный анализ
Теперь, когда у нас есть хорошее представление о возможных решениях, давайте проведем простой бенчмаркинг наших методов с помощью Java Microbenchmark Harness (JMH) .
В следующей таблице показано среднее время обработки каждой операции (в наносекундах):
Benchmark Mode Cnt Score Error Units Benchmarking.stringBasedSolution avgt 200 32.736 ± 0.589 ns/op Benchmarking.logarithmicApproach avgt 200 26.123 ± 0.064 ns/op Benchmarking.repeatedMultiplication avgt 200 7.494 ± 0.207 ns/op Benchmarking.dividingWithPowersOf2 avgt 200 1.264 ± 0.030 ns/op Benchmarking.divideAndConquer avgt 200 0.956 ± 0.011 ns/op
Решение на основе String , которое является самым простым, также является наиболее дорогостоящей операцией, поскольку только оно требует преобразования данных и инициализации новых объектов.
Логарифмический подход значительно эффективнее предыдущего решения, поскольку не требует преобразования данных. Кроме того, будучи однострочным решением, он может быть хорошей альтернативой подходу на основе строк.
Повторное умножение включает простое умножение пропорционально длине числа; например, если число состоит из 15 цифр, то этот метод будет включать 15 умножений.
Однако уже следующий метод использует тот факт, что каждое число может быть представлено степенью двойки (подход, аналогичный BCD). Он сводит то же уравнение к четырем операциям деления, поэтому он даже более эффективен, чем первый.
Наконец, как мы можем сделать вывод, наиболее эффективным алгоритмом является многословная реализация «Разделяй и властвуй», которая выдает ответ всего за три-четыре простых оператора if . Мы можем использовать его, если у нас есть большой набор данных, который нам нужно проанализировать.
4. Вывод
В этой краткой статье мы описали некоторые способы определения количества цифр в целом числе и сравнили эффективность каждого подхода.
Как всегда, полный код доступен на GitHub .
Как посчитать количество цифр в числе java
Более сложный способ, но не использующий строки и методы :
int numbersCount = 0; do numbersCount++; number /= 10; // если number нельзя изменять, то понадобится другая переменная > while(number != 0);
14 июля 2022
Самый простой способ посчитать количество цифр в числе в Java — это перевести число в строку и вызвать метод строки length() , который вернет нам длину строки:
var number = 1234; var numbersCount = String.valueOf(number).length(); System.out.println(numbersCount); // => 4
28 ноября 2022
И еще один способ, использующий методы класса Math :
int number = 12345; double numbersCount = Math.ceil(Math.log10(number)); System.out.println(numbersCount); // => 5.0
