在實際生產中,我們經常遇到這樣的情況,就是類似生成用戶號的標準化字符串。比如,生成一個以1開頭,中間為0,后面遞增的11位數字:10000000001、10000000002、10000000003……
生成這樣的用戶號的好處是格式統一,而且能夠很清楚的看出此用戶號的含義。比如以1開頭的為用戶號、以2開頭的為企業號、以3開頭的為商戶號等等。
生成用戶號后面的順序數字有很多辦法,比如采用數據庫的自增屬性,采用zookeeper的鎖機制等等。但通過他們拿到的往往只是個順序的數字,位數和前綴并不是逾期的格式。下面就簡單介紹一下如何方面的將順序數字生成標準格式的用戶號。
下面以生成用戶號和商戶號的實例具體說明:
package com;/** * @author 二師兄 * @date 2017/3/3 */public class Test { public static void main(String[] args) { Long num1 = 1024L; Long num2 = 2048L; System.out.打印結果為:用戶號為:10000001024企業號為:20000002048很明顯,上面的例子使用了String.format方法來格式化字符串,省去了各種判斷比較拼接字符串的步驟,精簡了代碼。
String類的format()方法用于創建格式化的字符串以及連接多個字符串對象。
String.format("%d%010d",preNumber,index)(1)第一個%d代表整數類型(十進制),是preNumber的占位符,拼接字符串的時候會用preNumber的值進行替換。 (2)第二個%010d,前面第一個0代表:數字前面補0;后面的10代表字符總長度為10,d代表整數類型。這個表達式的整體含義就是,去index的值來替換此處表達式,如果index的長度不足10位,則在index的前面用0補齊。
通過以上方法,可以輕易的生成一個其他類似的指定格式的字符串。發揮你的想象力吧。
新聞熱點
疑難解答