string - 字符串 "chunk"是否有名称说明?

标签 string algorithm language-agnostic padding

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

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

随后字符串 strblocksize 的倍数,必要时用 padchar 填充。我发现自己经常实现它,今天我又实现了它,并意识到它必须足够普遍才能有一个合适的名称或出现在一些公共(public)库中,但我从未见过或听说过它。这个例子是左对齐的,但我可以想象一个类似的右变体。我尝试在谷歌上搜索“ block 理由”或“ block 理由”时一无所获。这不是标准的左对齐或右对齐,因为我见过的所有 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" 

最佳答案

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

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

顺便说一句,这个combined operation在密码学中广泛使用,简称为“padding” '.

关于string - 字符串 "chunk"是否有名称说明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54918803/

相关文章:

parameters - 多少个参数太多?

python - 每个键都有唯一可能值的字典?

Java模糊字符串与名称匹配

java - 是否可以修改模式,以便在应用拆分时分隔符将是与基本模式不匹配的任何内容?

algorithm - 在类或对象(在 Scala 中)中编写算法有什么缺点?

javascript - 如何在我的脑海中保留 "debug"递归函数?

java - 有没有一种编程语言可以更好地处理 switch 的 break 语句?

python - 将日期时间列转换为字符串列

string - 循环字符串中的字符,Common Lisp

java - 是否有一种有效的算法用于具有有限数量的部分的整数分区?