Есть ли название для строки «чанк»? - PullRequest
0 голосов
/ 28 февраля 2019

Недавно я реализовывал следующий алгоритм (написанный для ясности; есть много способов записать его более компактно):

tmp = str.length % blocksize
if (tmp == 0)
  tmp = blocksize
tmp = blocksize - tmp
str.append(padchar * tmp)

Из него следует, что строка str кратна blocksize,заполнение padchar при необходимости.Я обнаружил, что реализую это достаточно часто, что сегодня я реализовал это снова и понял, что оно должно быть достаточно распространенным, чтобы иметь собственное имя или быть в некоторых общих библиотеках, но я никогда не видел и не слышал об этом.Этот пример выровнен по левому краю, но я мог бы представить аналогичный правый вариант.Мои попытки прибегнуть к «оправданию чанка» или «оправданию блока» ничего не дали.Это не стандартное левое или правое оправдание, так как все API-интерфейсы для тех, что я видел, имеют фиксированную длину, тогда как это переменная длина.

Итак, два моих вопроса:

  1. Имеет ли это более формальное имя?
  2. Реализован ли этот алгоритм в какой-либо стандартной языковой библиотеке или общих утилитах?

(обратите внимание, что хотя я использовал строки в этомвопрос, алгоритм работает так же хорошо, и меня так же интересуют ответы для общих списков / массивов)

Пример вывода:

> thisalgo(str="hey!", blocksize=5, padchar='0')
"hey!0" 
> thisalgo(str="hello", blocksize=5, padchar='0')
"hello" 
> thisalgo(str="hello!", blocksize=5, padchar='0')
"hello!0000" 

1 Ответ

0 голосов
/ 01 марта 2019

Не уверен насчет одного имени, но здесь задействованы две операции:

Я бы назвал комбинированную операцию " Строка заполнения до следующего кратного ", что является довольно интуитивным, но не« правильным »именем.

Кстати, эта комбинированная операция широко используется в криптографии, где ее просто называют обивка .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...