在超市购物时,小票上都会有一个订单号,而且每个订单号都是唯一的。本例要求用Java编写一个程序,模拟订单系统中订单号的生成。在生成订单号时,使用年月日和毫秒值组合生成唯一订单号。例如,给定一个包括年月日以及毫秒值的数组arr={2020,0504,1101},将其拼接成字符串s:[202005041101],作为一个订单号。
时间: 2024-02-01 22:13:41 浏览: 106
可以用如下Java代码实现:
```java
import java.text.SimpleDateFormat;
import java.util.Date;
public class OrderNumberGenerator {
public static void main(String[] args) {
int[] arr = {2020, 0504, 1101}; // 年月日数组
String orderNumber = generateOrderNumber(arr); // 生成订单号
System.out.println(orderNumber); // 输出订单号
}
/**
* 根据年月日和毫秒值生成唯一订单号
*
* @param arr 包括年月日的数组
* @return 订单号字符串
*/
public static String generateOrderNumber(int[] arr) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); // 指定日期格式
String dateStr = sdf.format(new Date()); // 获取当前时间的字符串表示
StringBuilder sb = new StringBuilder(dateStr.substring(0, 8)); // 截取前八位作为订单号的日期部分
for (int i : arr) {
sb.append(i); // 将年月日数组拼接到订单号后面
}
return sb.toString();
}
}
```
这里使用了`SimpleDateFormat`类来格式化当前时间,以获取年月日和毫秒值。然后将年月日数组拼接到日期字符串后面,得到一个唯一的订单号。
阅读全文