Java字符串數(shù)字左右補全0的四種方式
業(yè)務場景:
我們在做一個單號字段設計的時候,經(jīng)常需要用到這種格式,比如no2023062800001,no2023062800002,no2023062800003,單號累計遞增,前綴是指定的字符串+當前日期+數(shù)字五位,不滿五位左邊補0
方式一:String.format
%06d的定義:
0代表前面要補的字符
6代表字符串長度
d表示參數(shù)為整數(shù)類型
//左邊加0 String str = String.format("%06d", 12345); System.out.println(str); // 012345 //右加空格 String addspace1 = "asd"; String addspace2 = String.format("%-12s", addspace1); System.out.println("加空格 start:"+addspace2+":end"); //加空格 start:asd :end //左加空格 String addspace2_1 = "asd"; String addspace2_2 = String.format("%12s", addspace2_1); System.out.println("加空格 start:"+addspace2_2+":end"); //加空格 start: asd:end
方式二:NumberFormat.getInstance()
//左邊加0(1) int i = 12345; // 得到一個NumberFormat的實例 NumberFormat nf = NumberFormat.getInstance(); // 設置是否使用分組 nf.setGroupingUsed(false); // 設置最小整數(shù)位數(shù) nf.setMinimumIntegerDigits(6); System.out.println("左加0 start:"+nf.format(i)+":end"); //左加0 start:012345:end
方式三: StringUtils.leftPad
System.out.println(StringUtils.rightPad("123",6,"0")); //123000 System.out.println(StringUtils.leftPad("123",6,"0")); //000123
方式四: 自定義方法 append拼接
/** * 給字符串的左補0或右補0 * @param str 要處理的字符串 * @param length 補0后字符串總長度 * @param type 1-左補0 2-右補0 * @return */ public static String addZeroForStr(String str, int length,int type) { int strLen = str.length(); if (strLen < length) { while (strLen < length) { StringBuffer sb = new StringBuffer(); if(type==1){ // 左補0 sb.append("0").append(str); }else if(type==2){ //右補0 sb.append(str).append("0"); } str = sb.toString(); strLen = str.length(); } } return str; } //打印 System.out.println(addZeroForStr("12345",6,1)); //結(jié)果 0123456
附:java字符串不足長度自動補0
1、方法一
import org.apache.commons.lang3.StringUtils; StringUtils.leftPad(String str, int size, String padStr); 例子: StringUtils.leftPad("123", 6, "0") ==> 000123 StringUtils.leftPad("123456", 6, "0") ==> 123456
2、方法二
String str = "123" String s = String.format("%06d", str); //s="000123" %06d的定義: 0代表前面要補的字符 6代表字符串長度 d表示參數(shù)為整數(shù)類型
總結(jié)
到此這篇關于Java字符串數(shù)字左右補全0的四種方式的文章就介紹到這了,更多相關Java字符串數(shù)字左右補0內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
一篇文章帶你玩轉(zhuǎn)Spring bean的終極利器
這篇文章主要給大家介紹了關于玩轉(zhuǎn)Spring bean的終極利器的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用spring bean具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2018-05-05Java 中普通代碼塊,構(gòu)造代碼塊,靜態(tài)代碼塊區(qū)別及代碼示例
這篇文章主要介紹了Java 中普通代碼塊,構(gòu)造代碼塊,靜態(tài)代碼塊區(qū)別及代碼示例的相關資料,需要的朋友可以參考下2017-01-01Java @PostMapping和@GetMapping方法使用詳解
這篇文章主要介紹了Java @PostMapping和@GetMapping方法使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧2023-03-03SpringBoot實現(xiàn)熱部署的方式總結(jié)
所謂熱部署,就是在應用正在運行的時候升級軟件,卻不需要重新啟動應用,對于Java來說,熱部署就是在運行時更新Java類文件,本文將深入探討SpringBoot有哪些方式可以實現(xiàn)熱部署,感興趣的朋友可以小編一探討學習2023-06-06使用@TransactionalEventListener監(jiān)聽事務教程
這篇文章主要介紹了使用@TransactionalEventListener監(jiān)聽事務教程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09Spring Data JPA調(diào)用存儲過程實例代碼
本篇文章主要介紹了Spring Data JPA調(diào)用存儲過程實例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-04-04Java concurrency集合之ConcurrentHashMap_動力節(jié)點Java學院整理
這篇文章主要介紹了Java concurrency集合之ConcurrentHashMap的相關資料,需要的朋友可以參考下2017-06-06