字符串“块”对齐有名称吗?

时间:2019-02-28 05:11:58

标签: string algorithm language-agnostic padding

我最近正在实现以下算法(为清楚起见而编写;有很多方法可以更紧凑地编写它):

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

它将确保字符串strblocksize的倍数,并在必要时用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 :(得分:2)

不确定单个名称,但是涉及两个操作:

我将组合操作称为“ 将字符串填充到下一个倍数”,这很直观,但不是“适当的”名称。

顺便说一句,这个combined operation在密码术中被广泛使用,简称为'padding'。