Перейти к содержимому
  • 0
Laine_prikol

Вытащить из переменной количество букв

Вопрос

Как вытащить из переменной количество букв которые мне нужны например:

text = "teext"
t = количество букв t в переменной text
e = количество букв e в переменной text

Ну и так далее...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендуемые сообщения


str = 'tyUyyyUUaaattrrUUuu'
symbols = {}
for l in str:gmatch('%w') do
symbols[l] = (symbols[l] or 0) + 1
end
for l,n in pairs(symbols) do
print(l.." = "..n)
end

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Просто вбиваешь в гугле "lua string" и первый сайт который он тебе предлагает мне часто помогал, вот http://lua-users.org/wiki/StringLibraryTutorial

Там расписаны функции стандартной библиотеки string, для работы с текстом. И там есть то, что тебе нужно. Но постарайся хоть это сделать сам. Там даже примеры работы функций есть.

Как я понял тебе нужно узнать количество букв в фразе, пройти по ним брутом (в цикле) и записать в таблицу сколько какая буква использовалась.

Всё это реализуемо.

 

На ряду с библиотекой string, мне часто бывает полезна библиотека math. Просто имей ввиду, что в этой библиотеки есть все полезные математические функции. Гугл отлично выдаёт документацию по этим библиотекам.

Изменено пользователем qwertyMAN

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Как я понял тебе нужно узнать количество букв в фразе, пройти по ним брутом (в цикле) и записать в таблицу сколько какая буква использовалась.

Годное решение для низкоуровневых языков, но в Lua все вызовы обходятся дорого, как бы быстро они не выполнялись. Поэтому в данном случае более предпочтительным будет использовать string.find от позиции последнего вхождения. Такое решение позволит уменьшить количество необходимых итераций с общего количества букв в строке до количества искомых букв и плюс еще одной итерации.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Как вытащить из переменной количество букв которые мне нужны например:

text = "teext"
t = количество букв t в переменной text
e = количество букв e в переменной text

Ну и так далее...

str = 'tyUyyyUUaaattrrUUuu'
count = 0
for l in str:gmatch('U') do
  count = count + 1
end
print(count)       

---------------------------
--> 5

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

str = 'tyUyyyUUaaattrrUUuu'
count = 0
for l in str:gmatch('U') do
  count = count + 1
end

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
но этот код завершится ошибкой при попытке найти символ, имеющий для gmatch специальное значение

согласен. Вариант, дополненный Zer0  - безопасный, где поиск по шаблону аккуратно ведется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить на вопрос...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...