繁体   English   中英

如何从字符串(发票编号)应用递增编号

[英]How to apply incrementing numbers from strings (invoice numbers)

我正在尝试在当前的应用程序上实现递增的发票编号,但是由于应用程序发票是字符串,因此我对如何处理它感到困惑。

当前,发票号如下所示: Q20140001 ,并且应该为每个新发票将其增加1(因此下一个发票号将为Q20140002 )。 我只想将字符串拆分(分别为Q20140001 )。 然后我想将20140001数字增加到20140002

我的猜测是,每当我要创建一个新编号时,我都会检查数据库中存储的最后一个发票编号,将其解析为字符串和整数,取整数并将其递增1,然后加上Q回到它。

不过,我不确定我的方法是否正确。

您是否尝试过使用String#succ方法?

内部审查委员会会议:

2.1.2 :001 > 'Q20140001'.succ
 => "Q20140002"
2.1.2 :002 >

您必须记住的一件事是,在99999999发票之后,结果可能不是您想要的:

2.1.2 :002 > 'Q99999999'.succ
 => "R00000000"
2.1.2 :003 >

Q将增加到下一个ASCII位置R ,结果为R00000000 一种可能的解决方案是用足够的零填充发票编号,例如: Q00000000020140001或保留原样,从长远来看可能会更好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM