【发布时间】:2017-02-01 22:15:32
【问题描述】:
我有一个方法,例如,
public Order newOrder(Product prod, Supplier supp)
并且需要生成一个唯一的字母数字代码,格式为“ordn”,其中“n”是从 1 开始的累进数字,因此每次添加新订单时,ID 都会递增为“ord2”“ord3”。 ..
我该怎么做?是否可以通过子串来做到这一点?
我知道如何生成一个整数ID,但是这是一个字符串,所以我的问题更像是如何在字符串中增加一个整数。
我尝试将其子串化为String ocode = "ord" + n,并仅增加“n”,但如何将整个内容分配给新订单?还是我需要一个循环?
(我猜代码必须是一个字符串,后来有一个 findOrder() 方法通过接受字符串代码来检索特定订单。
顺便说一句,我是 Java 新手,这只是练习的一部分。
解决了,结果子字符串有效...
【问题讨论】:
-
你对实现你想要的逻辑有什么想法?
-
那么问题是如何生成一个升序整数序列?
-
如果您的程序重新启动会发生什么。从 1 开始,还是从中断的地方继续?你想把它保存在哪里?通常,您让数据库为您做类似的事情。
-
@Andreas 您只需要维护一个共享的(最终)持久状态,并以任何形式进行原子访问——这不必是数据库。事实上,如果这是一个只负责提供增量 id 的微服务,那么对于 1 个 int 来说,一个 DB 将是一个巨大的过度杀伤。
标签: java