Java 正在将字符串转换为整数,但正在删除前面的零-后续操作

Java 正在将字符串转换为整数,但正在删除前面的零-后续操作,java,groovy,geb,Java,Groovy,Geb,此问题已回答,请关闭它。。。 谢谢你的澄清 我看了上面的问题,但是在结束这个问题之前我们应该考虑一个用例: 我有一种情况,我下订单,系统生成一个参考号:0000002443 我将该数字存储为字符串。 当系统发出订单时,它会发送两个文档。一个作为带有上述参考号的请购单,另一个作为带有参考号的采购订单:000000 2444 我需要能够将第一个参考号(即0000002443)存储为整数,保留前面的零和+1,并将其存储为采购订单参考号(即0000002444),以便稍后验证订单 如果我将第一个参考号保

此问题已回答,请关闭它。。。 谢谢你的澄清

我看了上面的问题,但是在结束这个问题之前我们应该考虑一个用例:

我有一种情况,我下订单,系统生成一个参考号:0000002443 我将该数字存储为字符串。 当系统发出订单时,它会发送两个文档。一个作为带有上述参考号的请购单,另一个作为带有参考号的采购订单:000000 2444

我需要能够将第一个参考号(即0000002443)存储为整数,保留前面的零和+1,并将其存储为采购订单参考号(即0000002444),以便稍后验证订单

如果我将第一个参考号保留为字符串,那么我将无法向参考号中添加1以获取PO参考号

这是一个后续问题:

简单地说,一个整数没有很多前导零。它甚至没有关于它是十进制、十六进制还是类似的信息。它只是一个整数

如果您真的需要遵循现有的设计,我建议您将其解析为一个整数,添加一个,然后使用所需数量的零重新加载,以恢复原始长度


老实说,如果它真的只是一个数字,那么最好将它存储为一个数字,而不是使用字符串。

整数没有前导零(正如在另一个问题中所说的)

您需要将其转换为int,添加一个,然后将其填充回字符串:

def ref = '0000002443'

def refPlusOne = "${ref.toInteger() + 1}".padLeft( ref.length(), '0' )

你对那边的答案不满意吗?这些答案缺少什么?如果前面有零,它就不是java整数。你要求的是一些不可能的事情。在另一个线程中,DwB的回答似乎很好。保留整数并使用
String.format(“%08d”,value)当您需要显示或使用整数时。这种方法有什么问题?我总是存储整数(不在零之前),并使用格式仅用于显示。只有字符串存储格式信息这意味着电话号码不是整数,因为它们看起来像整数。必须具有特定前导数
0
的数字也不是整数。这是因为2443=02443=002443=002443=0000002443,所以当你把它转换成一个字符串时,它不知道你想要多少个零。我想我会用同样的方式回答,但是如果系统开始生成字母数字参考号,而不仅仅是数字,我们必须首先检查它是否是一个数字,如
ref.isNumber()
,但它同样不能解决问题。现在我感觉到了约翰最后一句话的份量有道理。非常感谢你的精彩回答,谢谢大家。我想我只需要将数字存储为一个整数,然后递增它。并在需要时将其转换回字符串,并将其与目标值进行比较。再次非常感谢。