【案例5-1】 模拟订单号生成
【案例介绍】
1.任务描述
在超市购物时,小票上都会有一个订单号,而且每个订单号都是唯一的。本例要求编写一个程序,模拟订单系统中订单号的生成。在生成订单号时,使用年月日和毫秒值组合生成唯一订单号。例如,给定一个包括年月日以及毫秒值的数组arr={2020,0504,1101},将其拼接成字符串s:[202005041101],作为一个订单号。
2.运行结果
运行结果如图5-1所示
图5-1 模拟订单号生成运行结果图
【案例思路】
(1)分析任务描述可知,做此任务需要先定义一个数组,数组中包括年月日以及毫秒值。
(2)要实现数组转成一个字符串,首先定义一个方法实现数组拼接成字符串。参数类型为数组,返回值类型为String,可先使用String定义一个空串,然后使用字符串的操作方法在开始最后加上“[]”字符。之后在加“[]”字符中间循环遍历数组用开始定义的字符串接收。自此,我们拼接的方法完成。在方法中将数组遍历,然后把每一个得到的字符拼接成一个字符串并且返回。
(3) 在主函数入口调用刚才的方法。并定义一个字符串变量接收结果
(4) 输出结果,观察控制台的效果。
【案例实现】
模拟订单号生成系统的实现代码,如文件5-1所示。
文件5-1 example1.java
- package com.itheima;
- public class example1 {
- public static void main(String[] args) {
- // 订单的年份月份毫秒值,定义一个数组即可
- int[] arr = {2019,004,1101};
- //调用方法,用一个变量接受结果
- String s = arrayToString(arr);
- //输出结果
- System.out.println("s:" + s);
- }
- // 定义一个方法实现数组拼接成字符串。参数类型为数组 返回值类型为String
- public static String arrayToString(int[] arr) {
- String s = "";
- s += "[";
- for (int i = 0; i < arr.length; i++) {
- if(i == arr.length-1) {
- s+=arr[i];
- }else {
- s+= arr[i];
- }
- }
- s += "]";
- //在方法中将数组遍历,然后把每一个得到的字符拼接成一个字符串并且返回
- return s;
- }
- }
在文件5-1中,第6行定义了一个数组arr,数组中有年月日以及毫秒值。第7行代码调用了arrayToString()方法,该方法封装将数组遍历拼接成字符串并返回的核心功能。第13行用String的初始化代码定义了一个空串,用于接收拼接成的字符串并且返回拼接成的字符串。第15~22行代码用于遍历数组arr,每循环一次将数组中元素赋值给空串s,for循环中定义了一个i变量,用于记录循环的次数。当i的值不小于数组元素长度是循环结束。数组也全部遍历完并全部赋值给空串s。第24行用于返回拼接后的字符串。