Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/34: Рейтинг темы: голосов - 34, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 10.05.2017
Сообщений: 19

Подсчет повторений каждой буквы в строке

20.11.2017, 17:53. Показов 7321. Ответов 15
Метки html (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Помогите с заданием: Пользователь вводит с клавиатуры строку в форму, а программа подсчитывает количество повторений каждой буквы и выводит на экран. Моя программа работает только если строку я меняю в самом коде, а мне надо, чтобы она вводилась с клавиатуры пользователем. Заранее благодарю за помощь Вот мой код:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
<html>
<head>
<style>
#StatTable {margin: 25px;}
#StatTable table {border-spacing: 0; border-collapse: collapse;}
#StatTable caption {padding-bottom: 10px;}
#StatTable td {padding: 4px 15px; border: 1px solid #798081; text-align: center; font: 13px/1 Verdana}
</style>
</head>
<body>
</body>
</html>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<script type="text/javascript">
    function StringStat(str)
    {
    var str;
    var a = str.split('a').length-1,
    b = str.split('b').length-1,
    c = str.split('c').length-1,
    d = str.split('d').length-1,
    e = str.split('e').length-1;
    f = str.split('f').length-1;
    g = str.split('g').length-1;
    h = str.split('h').length-1;
    i = str.split('i').length-1;
    j = str.split('j').length-1;
    k = str.split('k').length-1;
    l = str.split('l').length-1;
    m = str.split('m').length-1;
    n = str.split('n').length-1;
    o = str.split('o').length-1;
    p = str.split('p').length-1;
    q = str.split('q').length-1;
    r = str.split('r').length-1;
    s = str.split('s').length-1;
    t = str.split('t').length-1;
    u = str.split('u').length-1;
    v = str.split('v').length-1;
    w = str.split('w').length-1;
    x = str.split('x').length-1;
    y = str.split('y').length-1;
    z = str.split('z').length-1;
    var res = '<table>'
    +'<caption>Статистика строки<br>"'+str+'"</caption>'
    +'<tr><td>Название<br>символа</td>'
    +'<td>a</td><td>b</td><td>c</td><td>d</td><td>e</td><td>f</td><td>g</td><td>h</td><td>i</td><td>j</td><td>k</td><td>l</td><td>m</td><td>n</td><td>o</td><td>p</td><td>q</td><td>r</td><td>s</td><td>t</td><td>u</td><td>v</td><td>w</td><td>x</td><td>y</td><td>z</td></tr>'
    +'<tr><td>Количество<br>повторений</td>'
    +'<td>'+a+'</td><td>'+b+'</td><td>'+c+'</td><td>'+d+'</td><td>'+e+'</td><td>'+f+'</td><td>'+g+'</td><td>'+h+'</td><td>'+i+'</td><td>'+j+'</td><td>'+k+'</td><td>'+l+'</td><td>'+m+'</td><td>'+n+'</td><td>'+o+'</td><td>'+p+'</td><td>'+q+'</td><td>'+r+'</td><td>'+s+'</td><td>'+t+'</td><td>'+u+'</td><td>'+v+'</td><td>'+w+'</td><td>'+x+'</td><td>'+y+'</td><td>'+z+'</td></tr>'
    +'</table>';
    document.getElementById('StatTable').innerHTML = res;
    }
    </script>
<button onclick="StringStat('hgdjkgkjdhngdjkg')">Подсчитать</button>
<div id="StatTable"><div>
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.11.2017, 17:53
Ответы с готовыми решениями:

Количество повторений каждой буквы в строке
Помогите пожалуйста! Задача: Написать программу, которая считывает строку, считает в ней количество слов и количество повторений каждой...

Подсчет каждой буквы в строке
Добрый вечер уважаемые форумчане. Есть код, который считывает сколько раз появляется каждая буква в строке Как переделать его, чтобы...

Подсчет количества вхождений каждой буквы в строке
Здравствуйте!Стоит такая задача:Есть строка или массив типа char с предложением.Нужно подсчитать вхождение каждой буквы в этом...

15
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
21.11.2017, 09:22
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<script type="text/javascript">
    function StringStat(str)
    {
    var str;
    var a = str.split('a').length-1,
    b = str.split('b').length-1,
    c = str.split('c').length-1,
    d = str.split('d').length-1,
    e = str.split('e').length-1;
    f = str.split('f').length-1;
    g = str.split('g').length-1;
    h = str.split('h').length-1;
    i = str.split('i').length-1;
    j = str.split('j').length-1;
    k = str.split('k').length-1;
    l = str.split('l').length-1;
    m = str.split('m').length-1;
    n = str.split('n').length-1;
    o = str.split('o').length-1;
    p = str.split('p').length-1;
    q = str.split('q').length-1;
    r = str.split('r').length-1;
    s = str.split('s').length-1;
    t = str.split('t').length-1;
    u = str.split('u').length-1;
    v = str.split('v').length-1;
    w = str.split('w').length-1;
    x = str.split('x').length-1;
    y = str.split('y').length-1;
    z = str.split('z').length-1;
    var res = '<table>'
    +'<caption>Статистика строки<br>"'+str+'"</caption>'
    +'<tr><td>Название<br>символа</td>'
    +'<td>a</td><td>b</td><td>c</td><td>d</td><td>e</td><td>f</td><td>g</td><td>h</td><td>i</td><td>j</td><td>k</td><td>l</td><td>m</td><td>n</td><td>o</td><td>p</td><td>q</td><td>r</td><td>s</td><td>t</td><td>u</td><td>v</td><td>w</td><td>x</td><td>y</td><td>z</td></tr>'
    +'<tr><td>Количество<br>повторений</td>'
    +'<td>'+a+'</td><td>'+b+'</td><td>'+c+'</td><td>'+d+'</td><td>'+e+'</td><td>'+f+'</td><td>'+g+'</td><td>'+h+'</td><td>'+i+'</td><td>'+j+'</td><td>'+k+'</td><td>'+l+'</td><td>'+m+'</td><td>'+n+'</td><td>'+o+'</td><td>'+p+'</td><td>'+q+'</td><td>'+r+'</td><td>'+s+'</td><td>'+t+'</td><td>'+u+'</td><td>'+v+'</td><td>'+w+'</td><td>'+x+'</td><td>'+y+'</td><td>'+z+'</td></tr>'
    +'</table>';
    document.getElementById('StatTable').innerHTML = res;
    }
    </script>
<button onclick="StringStat(prompt('Введите строку'))">Подсчитать</button>
<div id="StatTable"><div>
1
566 / 465 / 183
Регистрация: 14.10.2017
Сообщений: 1,259
21.11.2017, 14:38
Как вариант.
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="script.js" defer></script>
</head>
<body>
    <input type="text" id="inp">
    <button id="press">Press</button>
    <hr>
    <p id="out"></p>
</body>
</html>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var arr = {};
for(var i = 97; i < 123; i++){
    arr[String.fromCharCode(i)] = 0;
}
var press = document.getElementById('press');
press.onclick = function(e) {
    var inp = document.getElementById('inp').value;
    var out = document.getElementById('out');
    for(var i = 0; i < inp.length; i++)
        ++arr[inp[i]];
    for(key in arr){
        if(arr[key])
            out.innerHTML += key + ' : ' + arr[key] + '<br>';
    }
}
1
 Аватар для dailydose
671 / 217 / 88
Регистрация: 21.07.2016
Сообщений: 1,036
Записей в блоге: 2
21.11.2017, 20:32
JavaScript
1
2
3
4
5
const StringStat = str => [...Array("z".charCodeAt() - "a".charCodeAt() + 1).keys()].map(n => {
    const letter = String.fromCharCode(n + "a".charCodeAt());
    const count = str.split(letter).length - 1;
    return {[letter]: count};
});
Миниатюры
Подсчет повторений каждой буквы в строке  
2
0 / 0 / 0
Регистрация: 10.05.2017
Сообщений: 19
21.11.2017, 21:24  [ТС]
спасибо всем большое!!!))))
0
126 / 93 / 18
Регистрация: 09.01.2011
Сообщений: 467
22.11.2017, 11:16
JavaScript
1
2
3
4
5
var str = 'asdasfghweffsfsf';
str.split('').reduce(function (a, e) {
    a.hasOwnProperty(e) && (++a[e]) || (a[e] = 1);
    return a;
}, {});
так более короткий вариант
4
566 / 465 / 183
Регистрация: 14.10.2017
Сообщений: 1,259
23.11.2017, 12:12
Dellok, правильно ли я понимаю,что строка 3 это то же самое что и
JavaScript
1
2
3
4
if(a.hasOwnProperty(e))
    ++a[e];
else
    a[e] = 1;
0
126 / 93 / 18
Регистрация: 09.01.2011
Сообщений: 467
23.11.2017, 12:17
Цитата Сообщение от klopp
Dellok, правильно ли я понимаю,что строка 3 это то же самое что и
да, именно так
1
566 / 465 / 183
Регистрация: 14.10.2017
Сообщений: 1,259
23.11.2017, 13:39
Dellok, Dellok, добавил в ваш код проверку,чтобы,согласно условию задачи
Цитата Сообщение от Anastasy_01_ Посмотреть сообщение
программа подсчитывает количество повторений каждой буквы
только буквы, и латиницу и кириллицу считал.Может есть еще какой способ?
JavaScript
1
2
3
4
5
6
var str = 'as7nт*ЁшШ?:%;№"das RR,fgh.we  плдff3sfsf';
console.log(str.split('').reduce(function (a, e) {
    if(e.match(/[a-zA-Zа-яёА-ЯЁ]/)) 
        a.hasOwnProperty(e) && (++a[e]) || (a[e] = 1);
    return a;
}, {}));
0
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
23.11.2017, 14:38
Можно ещё чувствительность к регистру убрать. Думаю, что при подсчёте букв в строке a == A всё-таки.
1
566 / 465 / 183
Регистрация: 14.10.2017
Сообщений: 1,259
23.11.2017, 14:59
Balanaar, так?
JavaScript
1
2
3
4
5
6
7
var str = 'as7nт*ЁшШ?:%;№"das RR,fgh.we  плдff3sfsf';
var res = str.toLowerCase().split('').reduce(function (a, e) {
    if(e.match(/[a-zа-яё]/)) 
        a.hasOwnProperty(e.toLowerCase()) && (++a[e]) || (a[e] = 1);
    return a;
}, {});
console.log(res);
1
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
23.11.2017, 15:39
klopp, именно
1
the hardway first
Эксперт JS
 Аватар для j2FunOnly
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
23.11.2017, 16:19
klopp, зачем два раза toLowerCase()(сначала на строке, а потом ещё на каждом символе)? Думаете первый не справился?
1
566 / 465 / 183
Регистрация: 14.10.2017
Сообщений: 1,259
23.11.2017, 16:30
j2FunOnly, упс,я сначала сделал на каждом,потом подумал что лучше сразу на строке,а с каждого удалить забыл)))
исправленный вариант:
JavaScript
1
2
3
4
5
6
7
var str = 'as7nт*ЁшШ?:%;№"das RR,fgh.we  плдff3sfsf';
var res = str.toLowerCase().split('').reduce(function (a, e) {
    if(e.match(/[a-zа-яё]/)) 
        a.hasOwnProperty(e) && (++a[e]) || (a[e] = 1);
    return a;
}, {});
console.log(res);
а как вы сделали серый фон под toLowerCase()?какой тег в редакторе?
0
the hardway first
Эксперт JS
 Аватар для j2FunOnly
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
23.11.2017, 16:42
Название: inline.png
Просмотров: 78

Размер: 3.5 Кб
Я тоже долго искал, когда первый раз увидел такое оформление в посте
1
388 / 275 / 76
Регистрация: 19.09.2011
Сообщений: 828
23.11.2017, 17:23
JavaScript
1
2
3
var arr = "asdASD123asddads123 asdf asdf asd".toLowerCase().replace(/\s/g, "").split("");
var result = arr.reduce((p, c) => (p.set(c, (p.get(c) || 0) + 1), p), new Map());
console.log(result)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.11.2017, 17:23
Помогаю со студенческими работами здесь

Подсчитать число появлений в файле каждой строчной русской буквы и вывести в файл количество повторений каждой
Дан текстовый файл. Подсчитать число появлений в нем каждой строчной (то есть маленькой) русской буквы и создать строковый файл, элементы...

Подсчет повторений символа в строке
Всем привет! Написал программу для подсчёта повторений символа введенного с клавиатуры, но правильного результата нет... В чём может...

Вывести все гласные буквы, содержащиеся в слове наибольшей длины и вывести число повторений каждой этой буквы
Вывести все гласные буквы, содержащиеся в слове наибольшей длины и вывести число повторений каждой этой буквы.

Подсчитать количество повторений каждой буквы
У меня считает буквы на первой строке, выводит их в файл, потом считает на второй строке и опять выводит, а мне нужно общее количество...

Подсчёт количества повторений символов в строке
Подскажите , почему не работает код? Ввожу строку , ввожу символ, проверяю сколько раз он встречается в строке. Но встречается он всегда 0...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru