Java生成一定規(guī)則遞增編號的示例代碼
一、需求描述
項(xiàng)目需求中有時(shí)需要生成一定規(guī)則遞增編號。例如生成設(shè)備編號:設(shè)備類型+五位編號(從1開始,不夠前補(bǔ)0),也就是 SYXH000001 / SYXH00002 / SDOI00001 類似這樣。 那么如何處理 000001 自增1變?yōu)?000002 呢?
接下來我們直接上代碼!
二、代碼實(shí)現(xiàn)
1.代碼實(shí)現(xiàn)Demo
public class Test { ?? ?/** ?? ? * 生成規(guī)則設(shè)備編號:設(shè)備類型+五位編號(從1開始,不夠前補(bǔ)0) ?? ? *? ?? ? * @param equipmentType ?? ? * ?? ??? ??? ??? ?設(shè)備類型 ?? ? * @param equipmentNo ?? ? * ?? ??? ??? ??? ?最新設(shè)備編號 ?? ? * @return ?? ? */ ?? ?public static String getNewEquipmentNo(String equipmentType, String equipmentNo){ ?? ??? ?// 默認(rèn)一個(gè)初始設(shè)備編號 ?? ??? ?String newEquipmentNo = equipmentType + "00001"; ?? ??? ?// 判斷傳入的設(shè)備類型與最新設(shè)備編號不為空 ?? ??? ?if(equipmentNo != null && !equipmentNo.isEmpty()){ ?? ??? ??? ?// 字符串?dāng)?shù)字解析為整數(shù) ?? ??? ??? ?int no = Integer.parseInt(equipmentNo); ?? ??? ??? ?// 最新設(shè)備編號自增1 ?? ??? ??? ?int newEquipment = ++no; ?? ??? ??? ?// 將整數(shù)格式化為5位數(shù)字 ?? ??? ??? ?newEquipmentNo = String.format(equipmentType + "%05d", newEquipment); ?? ??? ?} ?? ??? ?return newEquipmentNo; ?? ?} ?? ?public static void main(String[] args) { ?? ??? ?String equipmentNo = Test.getNewEquipmentNo("SYXH", "00032"); ?? ??? ?System.out.println("生成設(shè)備編號:" + equipmentNo); ?? ?} }
運(yùn)行結(jié)果:
生成設(shè)備編號:SYXH00033
2.代碼解釋
從上面代碼中可以看到,首先我們默認(rèn)了一個(gè)初始設(shè)備編號,當(dāng)傳入方法的最新設(shè)備編號為 null 或是空時(shí)將使用。 如果傳入了數(shù)據(jù)庫中最新設(shè)備編號,將首先使用 Integer 的 parseInt() 方法返回十進(jìn)制整數(shù),這樣就可以對其自增1。 最后通過 String 的 format() 方法進(jìn)行字符串格式化返回就可以了。
三、String.format()方法
我們重點(diǎn)來看 String.format() 方法 在 Java 中,String.format() 方法用于格式化字符串。在格式化字符串時(shí),常常需要將數(shù)值類型的數(shù)據(jù)(如整數(shù)和浮點(diǎn)數(shù))轉(zhuǎn)換成字符串,同時(shí)還需要指定格式化后的字符串的樣式和長度。%05d 是 String.format() 方法中用于將整數(shù)類型格式化成指定長度的字符串類型的參數(shù)之一。
- % 是格式化輸出的標(biāo)記符。
- d 表示指定參數(shù)的類型為整數(shù)類型。
- 0 表示當(dāng)數(shù)字長度不足要求時(shí)左側(cè)補(bǔ)0。
- 5 表示最終格式化后的字符串最少包含5個(gè)字符。如果數(shù)字長度不足5個(gè)字符,則在左側(cè)補(bǔ)0,以達(dá)到最少包含5個(gè)字符的要求。
例如,以下是一個(gè)使用 String.format() 方法將一個(gè)整數(shù)格式化為5位數(shù)字的示例:
int num = 123; String formattedNum = String.format("%05d", num); System.out.println("The formatted number is: " + formattedNum);
在上面的示例中,數(shù)字123在進(jìn)行格式化時(shí),因?yàn)橹挥?個(gè)字符,不足5個(gè)字符,所以通過左側(cè)補(bǔ)0的方式,將數(shù)字格式化為了 “00123”。
總結(jié)
上述簡單實(shí)現(xiàn)了使用 Java 生成一定規(guī)則遞增編號,是在已知的庫中最新編號自增1。只是一個(gè)簡單思路,供大家參考。
到此這篇關(guān)于Java生成一定規(guī)則遞增編號的示例代碼的文章就介紹到這了,更多相關(guān)Java生成規(guī)則遞增編號內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JAVA實(shí)現(xiàn)JSON后端向前端傳遞數(shù)據(jù)
本篇文章主要介紹了JAVA實(shí)現(xiàn)JSON后端向前端傳遞數(shù)據(jù),這里整理了詳細(xì)的代碼,具有一定的參考價(jià)值,有需要的小伙伴可以參考下。2017-03-03intellij idea 2021.2 打包并上傳運(yùn)行spring boot項(xiàng)目的詳細(xì)過程(spring boot 2
這篇文章主要介紹了intellij idea 2021.2 打包并上傳運(yùn)行一個(gè)spring boot項(xiàng)目(spring boot 2.5.4),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-09-09Intellij IDEA命令行執(zhí)行java無法加載主類解決方案
這篇文章主要介紹了Intellij IDEA命令行執(zhí)行java無法加載主類解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09JavaWeb開發(fā)之JSTL標(biāo)簽庫的使用、 自定義EL函數(shù)、自定義標(biāo)簽(帶屬性的、帶標(biāo)簽體的)
這篇文章主要介紹了JavaWeb開發(fā)之JSTL標(biāo)簽庫的使用、 自定義EL函數(shù)、自定義標(biāo)簽(帶屬性的、帶標(biāo)簽體的),需要的朋友可以參考下2017-02-02SpringBoot整合阿里云OSS對象存儲服務(wù)的實(shí)現(xiàn)
這篇文章主要介紹了SpringBoot整合阿里云OSS對象存儲服務(wù)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08解決SpringMVC @RequestMapping不設(shè)置value出現(xiàn)的問題
這篇文章主要介紹了解決SpringMVC @RequestMapping不設(shè)置value出現(xiàn)的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08