我希望有连续的发票号码,但是在这种情况下,succ方法很糟糕(双关意)。
'427'.succ
> '428' (works!)
'2021-9'.succ
> '2022-0' (does not work)
'2021.9'.succ
> '2022.0' (does not work)我找不到这样的宝石,只有一个宝石可以自然地排序字符串。如果没有人知道现有的解决方案,我很快就会用自编程序的方法回答这个问题。
发布于 2022-01-09 11:53:35
您可以使用String#gsub并在匹配的数字上应用succ:
'427'.gsub(/\D(\d+)$|^\d+$/, &:succ)
# "428"
'2021-9'.gsub(/\D(\d+)$|^\d+$/, &:succ)
# "2021-10"
'2021-624'.gsub(/\D(\d+)$|^\d+$/, &:succ)
# "2021-625"https://stackoverflow.com/questions/70640956
复制相似问题