Как посчитать количество символов в строке java
Перейти к содержимому

Как посчитать количество символов в строке java

  • автор:

Как посчитать количество букв в строке java

Чтобы посчитать количество букв в строке, можно использовать метод строк length() . Этот метод вернет длину строки:

var word = "Hello"; var lettersCount = word.length(); System.out.println(lettersCount); // 5 

18 ноября 2022

Если строка содержит не только буквы, но и другие символы, а посчитать надо буквы, то можно так :

String word = "a1B2c!D%"; int lettersCount = 0; for (int i = 0; i  word.length(); i++)  if (Character.isAlphabetic(word.charAt(i)))  lettersCount++; > > System.out.println(lettersCount); // => 4 

Как правильно можно узнать количество определенных символов в String/Integer’e?

Коллеги, вопрос такой: Как правильно можно узнать количество определенных символов в String/Integer’e? Допустим есть строка 1110001101011 — мне нужно из нее узнать кол-во единиц или нулей, как на Java это сделать? Стандартных методов нет.

Отслеживать
задан 15 мая 2012 в 11:15
Павел Шестаков Павел Шестаков
135 1 1 золотой знак 4 4 серебряных знака 15 15 бронзовых знаков
Пройтись циклом, посчитать нули и единицы. В чем вопрос?
15 мая 2012 в 11:18
Просто удивительно, какой резонанс вызвала простейшая и похоже оторванная от реальной жизни задача.
16 мая 2012 в 8:25
Жду в ответах фабрику фабрик счетчиков символов )
17 мая 2012 в 7:22
Не накаркайте. А то можете получить фабрику фабрик счётчиков счётчиков символов.
17 мая 2012 в 9:09

5 ответов 5

Сортировка: Сброс на вариант по умолчанию

Наверное самый простой способ будет посимвольный разбор строки и сравнение каждого элемента отдельно, что-то вроде:

String str = "1100011"; int countNulls=0, countOnes = 0; for (char element : str.toCharArray())

Отслеживать
34.4k 15 15 золотых знаков 65 65 серебряных знаков 94 94 бронзовых знака
ответ дан 15 мая 2012 в 11:29
1,675 1 1 золотой знак 10 10 серебряных знаков 15 15 бронзовых знаков
Ну для 0 и 1 можно: int cnt[] = <0, 0>; for (char element: str.toCharArray()) cnt[element — ‘0’]++;
15 мая 2012 в 12:27

Далее только оптимизация) String str = «1100011»; int countNulls = 0 for (char element : str.toCharArray()) < if (element == '0') < countNulls++; >> int countOnes = str.length() — countNulls;

15 мая 2012 в 20:29

import java.util.*; import java.lang.*; class Main < public static void main (String[] args) throws java.lang.Exception < String string = "1110001101011"; Mapmap = new HashMap(); for ( int i = 0; i < string.length(); i++ ) < Integer n = map.get( string.charAt(i) ); if ( n == null ) map.put( string.charAt(i), 1 ); else map.put( string.charAt(i), ++n ); >System.out.println(map); > > 

Отслеживать
ответ дан 16 мая 2012 в 5:47
2,449 1 1 золотой знак 15 15 серебряных знаков 15 15 бронзовых знаков

Если в строке только 0 и 1, то проверка в цикле выглядит некрасиво. Лучше сразу занести пары («0», 0) и («1», 0).

16 мая 2012 в 6:12

Согласен для частного случая, однако у меня общее решение и покормить придется всем basic multilingual plane, что совсем некошерно. Уж проще тогда сделать сахарный класс, который будет принимать null за 0.

16 мая 2012 в 6:46

Если эффективно, то цикл. Если штатно — то есть готовый метод — countMatches. Прям с демками. В общем случае лучше предпочитать готовые библиотечные функции, так как обычно они уже достаточно хорошо работают. И только если они не удовлетворяют по скорости/качеству (либо просто нет таких), тогда писать свой велосипед.

Но если это учебное задание, то тогда нужно писать так, как хочет преподаватель, и не важно, эффективно или нет, так как для некоторых преподавателей важно, что бы они понимали решение.

Но ещё я в условии заметил слово «Integer». Но в Integer’e нет символов (при желании их конечно можно найти там, например рассматривая Integer как 4 (или 2) char. Но это что то не то:)

Отслеживать
ответ дан 16 мая 2012 в 19:26
112k 6 6 золотых знаков 93 93 серебряных знака 159 159 бронзовых знаков

У меня есть подозрение, что задача состоит в нахождении количества бит целого, равных 1. Просто автор не знает, что всего в Integer 32 бита.

16 мая 2012 в 20:43
Насчет штатного не совсем правда, это Apache Commons.
16 мая 2012 в 21:15
Apache Commons — это как boost для с++. Большая подборка хороших велосипедов.
17 мая 2012 в 6:41

данное решение позволяет считать любые символы, у вас есть возможность самому задавать символы которые нужно посчитать. теоретически должно работать с приемлимой производительностью:

public class CountCharacters < public static void main(String[] args) < // two usage examples for provided input string countCharacters("1110001101011", '0', '1'); countCharacters("1110001101011", new char[] ); // usage example for custom string countCharacters("00112233445566778800qwertyuiop[]<>asdfghjkl;'zxcvbnm,./", '0', '1', 'a', 'b', 'c'); > private static void countCharacters(String inputString, char. interestedCharacters) < final int[] occurences = new int[256]; final char[] array = inputString.toCharArray(); for (final char c : array) < occurences[c] = occurences[c] + 1; >// dump results for characters you are interested in for (int i = 0; i < interestedCharacters.length; i++) < System.out.println("found '" + occurences[interestedCharacters[i]] + "' occurences for character '" + interestedCharacters[i] + "'"); >System.out.println(); > > 

выводит в консоль:

found '5' occurences for character '0' found '8' occurences for character '1' found '5' occurences for character '0' found '8' occurences for character '1' found '4' occurences for character '0' found '2' occurences for character '1' found '1' occurences for character 'a' found '1' occurences for character 'b' found '1' occurences for character 'c' 

p.s. минусы, — неоптимальное использование памяти + нет поддержки кодировок. в принцыпе последнее можно легко исправить

аналогичным образом работает решение для int’ов:

private static int[] ALL_DIGITS = new int[] < 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 >; protected static void countNumbers(int i) < countNumbers(i, ALL_DIGITS); >protected static void countNumbers(int value, int. digits) < // number consists of only 10 digits int[] occurences = new int[10]; // copy value int x = value; while (x >= 10) < int low = x % 10; occurences[low] = occurences[low] + 1; x = (x - low) / 10; >occurences[x] = occurences[x] + 1; // dump results for digits you are interested in for (int i = 0; i < digits.length; i++) < System.out.println("found '" + occurences[digits[i]] + "' occurences for digit '" + digits[i] + "'"); >System.out.println(); > 
countNumbers(111000110, 0, 1); countNumbers(1234567890); 
found '4' occurences for digit '0' found '5' occurences for digit '1' found '1' occurences for digit '0' found '1' occurences for digit '1' found '1' occurences for digit '2' found '1' occurences for digit '3' found '1' occurences for digit '4' found '1' occurences for digit '5' found '1' occurences for digit '6' found '1' occurences for digit '7' found '1' occurences for digit '8' found '1' occurences for digit '9' 

15.16. Java – Метод length()

Метод length() – возвращает длину строки в Java. Длина равна числу 16-разрядных символов Юникода в строке.

Синтаксис

Синтаксис этого метода:

public int length() 

Параметры

Подробная информация о параметрах:

Возвращаемое значение

  • В Java length() возвращает длину последовательности символов, представленного этим объектом.

Пример 1: определение в Java длины строки

Ниже представлен пример метода length(), который поможет определить длину строки.

import java.io.*; public class Test < public static void main(String args[])< String Str1 = new String("Добро пожаловать на ProgLang.su"); String Str2 = new String("ProgLang.su" ); System.out.print("Длина строки \"Добро пожаловать на ProgLang.su\" - " ); System.out.println(Str1.length()); System.out.print("Длина строки \"ProgLang.su\" - " ); System.out.println(Str2.length()); >> 

Получим следующий результат:

Длина строки "Добро пожаловать на ProgLang.su" - 31 Длина строки "ProgLang.su" - 11 

Пример 2: сравнение длины строк

Также с помощью метода length() можно не только узнать длину строки, но и сравнить длину строк. Ниже представлен пример как это можно сделать.

public class Test < public static void main(String args[]) < // Определение длины строки s1 и s2. String s1 = "Я стану отличным программистом!"; int len1 = s1.length(); String s2 = "Я стану отличным разработчиком!"; int len2 = s2.length(); // Вывод на экран количества символов в каждой строке. System.out.println( "Длина строки \"Я стану отличным программистом!\": " + len1 + " символ."); System.out.println( "Длина строки \"Я стану отличным разработчиком!\": " + len2 + " символ."); // Сравнение длин строк s1 и s2. if (len1 >len2) < System.out.println( "\nСтрока \"Я стану отличным программистом!\" длинее строки \"Я стану отличным разработчиком!\"."); >if (len1 < len2)< System.out.println( "\nСтрока \"Я стану отличным программистом!\" короче строки \"Я стану отличным разработчиком!\"."); >else < System.out.println( "\nСтроки \"Я стану отличным программистом!\" и \"Я стану отличным разработчиком!\" равны."); >> > 

Получим следующий результат:

Длина строки "Я стану отличным программистом!": 31 символ. Длина строки "Я стану отличным разработчиком!": 31 символ. Строки "Я стану отличным программистом!" и "Я стану отличным разработчиком!" равны. 

Оглавление

  • 1. Java – Самоучитель для начинающих
  • 2. Java – Обзор языка
  • 3. Java – Установка и настройка
  • 4. Java – Синтаксис
  • 5. Java – Классы и объекты
  • 6. Java – Конструкторы
  • 7. Java – Типы данных и литералы
  • 8. Java – Типы переменных
  • 9. Java – Модификаторы
  • 10. Java – Операторы
  • 11. Java – Циклы и операторы цикла
  • 11.1. Java – Цикл while
  • 11.2. Java – Цикл for
  • 11.3. Java – Улучшенный цикл for
  • 11.4. Java – Цикл do..while
  • 11.5. Java – Оператор break
  • 11.6. Java – Оператор continue
  • 12. Java – Операторы принятия решений
  • 12.1. Java – Оператор if
  • 12.2. Java – Оператор if..else
  • 12.3. Java – Вложенный оператор if
  • 12.4. Java – Оператор switch..case
  • 12.5. Java – Условный оператор (? 🙂
  • 13. Java – Числа
  • 13.1. Java – Методы byteValue(), shortValue(), intValue(), longValue(), floatValue(), doubleValue()
  • 13.2. Java – Метод compareTo()
  • 13.3. Java – Метод equals()
  • 13.4. Java – Метод valueOf()
  • 13.5. Java – Метод toString()
  • 13.6. Java – Метод parseInt()
  • 13.7. Java – Метод Math.abs()
  • 13.8. Java – Метод Math.ceil()
  • 13.9. Java – Метод Math.floor()
  • 13.10. Java – Метод Math.rint()
  • 13.11. Java – Метод Math.round()
  • 13.12. Java – Метод Math.min()
  • 13.13. Java – Метод Math.max()
  • 13.14. Java – Метод Math.exp()
  • 13.15. Java – Метод Math.log()
  • 13.16. Java – Метод Math.pow()
  • 13.17. Java – Метод Math.sqrt()
  • 13.18. Java – Метод Math.sin()
  • 13.19. Java – Метод Math.cos()
  • 13.20. Java – Метод Math.tan()
  • 13.21. Java – Метод Math.asin()
  • 13.22. Java – Метод Math.acos()
  • 13.23. Java – Метод Math.atan()
  • 13.24. Java – Метод Math.atan2()
  • 13.25. Java – Метод Math.toDegrees()
  • 13.26. Java – Метод Math.toRadians()
  • 13.27. Java – Метод Math.random()
  • 14. Java – Символы
  • 14.1. Java – Метод Character.isLetter()
  • 14.2. Java – Метод Character.isDigit()
  • 14.3. Java – Метод Character.isWhitespace()
  • 14.4. Java – Метод Character.isUpperCase()
  • 14.5. Java – Метод Character.isLowerCase()
  • 14.6. Java – Метод Character.toUpperCase()
  • 14.7. Java – Метод Character.toLowerCase()
  • 14.8. Java – Метод Character.toString()
  • 15. Java – Строки
  • 15.1. Java – Метод charAt()
  • 15.2. Java – Метод compareTo()
  • 15.3. Java – Метод compareToIgnoreCase()
  • 15.4. Java – Метод concat()
  • 15.5. Java – Метод contentEquals()
  • 15.6. Java – Метод copyValueOf()
  • 15.7. Java – Метод endsWith()
  • 15.8. Java – Метод equals()
  • 15.9. Java – Метод equalsIgnoreCase()
  • 15.10. Java – Метод getBytes()
  • 15.11. Java – Метод getChars()
  • 15.12. Java – Метод hashCode()
  • 15.13. Java – Метод indexOf()
  • 15.14. Java – Метод intern()
  • 15.15. Java – Метод lastIndexOf()
  • 15.16. Java – Метод length()
  • 15.17. Java – Метод matches()
  • 15.18. Java – Метод regionMatches()
  • 15.19. Java – Метод replace()
  • 15.20. Java – Метод replaceAll()
  • 15.21. Java – Метод replaceFirst()
  • 15.22. Java – Метод split()
  • 15.23. Java – Метод startsWith()
  • 15.24. Java – Метод subSequence()
  • 15.25. Java – Метод substring()
  • 15.26. Java – Метод toCharArray()
  • 15.27. Java – Метод toLowerCase()
  • 15.28. Java – Метод toString()
  • 15.29. Java – Метод toUpperCase()
  • 15.30. Java – Метод trim()
  • 15.31. Java – Метод valueOf()
  • 15.32. Java – Классы StringBuilder и StringBuffer
  • 15.32.1. Java – Метод append()
  • 15.32.2. Java – Метод reverse()
  • 15.32.3. Java – Метод delete()
  • 15.32.4. Java – Метод insert()
  • 15.32.5. Java – Метод replace()
  • 16. Java – Массивы
  • 17. Java – Дата и время
  • 18. Java – Регулярные выражения
  • 19. Java – Методы
  • 20. Java – Потоки ввода/вывода, файлы и каталоги
  • 20.1. Java – Класс ByteArrayInputStream
  • 20.2. Java – Класс DataInputStream
  • 20.3. Java – Класс ByteArrayOutputStream
  • 20.4. Java – Класс DataOutputStream
  • 20.5. Java – Класс File
  • 20.6. Java – Класс FileReader
  • 20.7. Java – Класс FileWriter
  • 21. Java – Исключения
  • 21.1. Java – Встроенные исключения
  • 22. Java – Вложенные и внутренние классы
  • 23. Java – Наследование
  • 24. Java – Переопределение
  • 25. Java – Полиморфизм
  • 26. Java – Абстракция
  • 27. Java – Инкапсуляция
  • 28. Java – Интерфейсы
  • 29. Java – Пакеты
  • 30. Java – Структуры данных
  • 30.1. Java – Интерфейс Enumeration
  • 30.2. Java – Класс BitSet
  • 30.3. Java – Класс Vector
  • 30.4. Java – Класс Stack
  • 30.5. Java – Класс Dictionary
  • 30.6. Java – Класс Hashtable
  • 30.7. Java – Класс Properties
  • 31. Java – Коллекции
  • 31.1. Java – Интерфейс Collection
  • 31.2. Java – Интерфейс List
  • 31.3. Java – Интерфейс Set
  • 31.4. Java – Интерфейс SortedSet
  • 31.5. Java – Интерфейс Map
  • 31.6. Java – Интерфейс Map.Entry
  • 31.7. Java – Интерфейс SortedMap
  • 31.8. Java – Класс LinkedList
  • 31.9. Java – Класс ArrayList
  • 31.10. Java – Класс HashSet
  • 31.11. Java – Класс LinkedHashSet
  • 31.12. Java – Класс TreeSet
  • 31.13. Java – Класс HashMap
  • 31.14. Java – Класс TreeMap
  • 31.15. Java – Класс WeakHashMap
  • 31.16. Java – Класс LinkedHashMap
  • 31.17. Java – Класс IdentityHashMap
  • 31.18. Java – Алгоритмы Collection
  • 31.19. Java – Iterator и ListIterator
  • 31.20. Java – Comparator
  • 32. Java – Дженерики
  • 33. Java – Сериализация
  • 34. Java – Сеть
  • 34.1. Java – Обработка URL
  • 35. Java – Отправка Email
  • 36. Java – Многопоточность
  • 36.1. Java – Синхронизация потоков
  • 36.2. Java – Межпоточная связь
  • 36.3. Java – Взаимная блокировка потоков
  • 36.4. Java – Управление потоками
  • 37. Java – Основы работы с апплетами
  • 38. Java – Javadoc

Посчитать количество уникальных символов в введенной строке. Java

Здесь мы сначала считываем введенную строку с помощью класса Scanner. Затем мы создаем экземпляр класса HashSet, чтобы хранить уникальные символы. Затем мы проходим по всем символам входной строки и добавляем каждый символ в нашу множества уникальных символов. Наконец, мы выводим количество уникальных символов на экран.

Переписать другими словами
Написать сочинение по запросу
Или попробуйте другие режимы нейросети.

Независимо от того, новичок Вы в программировании или профессионал с опытом, подсчет уникальных символов – это рутинное и трудоемкое занятие. Теперь это задание можно решить быстро и легко с помощью нашей нейросети онлайн!

Наша нейросеть пишет текст, который подсчитывает количество уникальных символов в вашей введенной строке быстро и точно. Никаких сложных вычислений, просто введите строку и получите ответ мгновенно. Откройте для себя новый уровень оперативности и надежности с нашей нейросетью онлайн!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *