我们可以使用 String.format() 用具有所需长度的字符填充/前缀吗?

2022-09-05 00:24:27

可用于添加特定字符的前缀。java.lang.String.format(String str, String str1)

我可以为以下数字执行此操作:

int sendID = 202022;
String usiSuffix = String.format("%032d", sendID);

它使长度为32,左垫为0s:String00000000000000000000000000202022

当 sendID 是这样的时,如何实现同样的事情:String

String sendID = "AABB";

我想要一个这样的输出:0000000000000000000000000000AABB


答案 1

您可以使用这种黑客方式获取输出:

String sendID = "AABB";
String output = String.format("%0"+(32-sendID.length())+"d%s", 0, sendID);

演示:http://ideone.com/UNVjqS


答案 2

如果你真的想使用,你可以做如下操作,String.format

String sendID = "AABB";
String.format("%32s", sendID ).replace(' ', '0')

除此之外,您可以在这里找到许多解决方案。String.format

编辑:感谢布莱恩指出这个问题。上述方法不适用于带空格的输入。您可以尝试如下操作。但我不会建议下面的操作,因为它有太多的字符串操作。

String sendID = "AA BB";
String suffix = String.format("%32s", "").replace(' ', '0') + sendID;
sendID = suffix.substring(sendID.length());

您也可以尝试使用StringUtils.leftPad。

StringUtils.leftPad(sendID, 32 - sendID.length(), '0');