Java字符串數(shù)字左右補全0的四種方式
業(yè)務場景:
我們在做一個單號字段設計的時候,經常需要用到這種格式,比如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)); //結果 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ù)類型
總結
到此這篇關于Java字符串數(shù)字左右補全0的四種方式的文章就介紹到這了,更多相關Java字符串數(shù)字左右補0內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java 中普通代碼塊,構造代碼塊,靜態(tài)代碼塊區(qū)別及代碼示例
這篇文章主要介紹了Java 中普通代碼塊,構造代碼塊,靜態(tài)代碼塊區(qū)別及代碼示例的相關資料,需要的朋友可以參考下2017-01-01Java @PostMapping和@GetMapping方法使用詳解
這篇文章主要介紹了Java @PostMapping和@GetMapping方法使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧2023-03-03使用@TransactionalEventListener監(jiān)聽事務教程
這篇文章主要介紹了使用@TransactionalEventListener監(jiān)聽事務教程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09Java concurrency集合之ConcurrentHashMap_動力節(jié)點Java學院整理
這篇文章主要介紹了Java concurrency集合之ConcurrentHashMap的相關資料,需要的朋友可以參考下2017-06-06