string - 字符串“块”对齐是否有名称?
问题描述
我最近正在实现以下算法(为清楚起见而编写;有很多方法可以更紧凑地编写它):
tmp = str.length % blocksize
if (tmp == 0)
tmp = blocksize
tmp = blocksize - tmp
str.append(padchar * tmp)
随之而来的字符串str
是 的倍数blocksize
,根据需要填充padchar
。我发现自己经常实现它,今天我又实现了它,并意识到它必须足够普遍才能有一个合适的名称或出现在一些常见的库中,但我从未见过或听说过它。这个例子是左对齐的,但我可以想象一个类似的右变体。我在谷歌上搜索“块对齐”或“块对齐”的尝试一无所获。这不是标准的左对齐或右对齐,因为我见过的所有 api 都是固定长度的,而这是半可变长度。
所以,我的两个问题:
- 这有更正式的名称吗?
- 该算法是否在任何语言标准库或通用实用程序中实现?
(请注意,虽然我在这个问题中使用了字符串,但该算法同样适用,而且我对通用列表/数组的答案同样感兴趣)
示例输出:
> 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"
解决方案
不确定单个名称,但涉及两个操作:
填充(leftpad、rightpad 等 - 请参阅如何在 Java 中填充字符串?)
将长度向上舍入到下一个倍数
我将组合操作称为“将字符串填充到下一个倍数”,这非常直观,但不是“正确”的名称。
推荐阅读
- spring - 为什么在使用带有redis的spring cloud api gateway ratelimit时响应标头中的X-RateLimit-Remaining -1?
- blockchain - 就数据互操作性和来源而言,托管私有区块链服务(如 Azure 区块链服务)的真正目的是什么
- sql - 在 Laravel Eloquent 中获取最新的重复数据
- apache-zookeeper - 是否可以在单台机器上运行多个具有不同端口的 Zookeeper 实例?
- flutter - 颤振:堆栈内的警报对话框
- json - 如何根据以数组形式给出的键使用python过滤json字符串?
- java - 在spring boot中显示jsp页面时,它与jsp头文件一起显示
- python - 如何在 Windows 上使用 python 与 AMD GPU 交互
- c++ - C++ - 返回调用对象的引用
- python - 加载自定义指标失败