Java字符串?dāng)?shù)字左右補全0的四種方式
業(yè)務(wù)場景:
我們在做一個單號字段設(shè)計的時候,經(jīng)常需要用到這種格式,比如no2023062800001,no2023062800002,no2023062800003,單號累計遞增,前綴是指定的字符串+當(dāng)前日期+數(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();
// 設(shè)置是否使用分組
nf.setGroupingUsed(false);
// 設(shè)置最小整數(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") ==> 1234562、方法二
String str = "123"
String s = String.format("%06d", str); //s="000123"
%06d的定義:
0代表前面要補的字符
6代表字符串長度
d表示參數(shù)為整數(shù)類型總結(jié)
到此這篇關(guān)于Java字符串?dāng)?shù)字左右補全0的四種方式的文章就介紹到這了,更多相關(guān)Java字符串?dāng)?shù)字左右補0內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
spring security中的默認(rèn)登錄頁源碼跟蹤
原來Spring Security有一個默認(rèn)的WebSecurityConfigurerAdapter,發(fā)現(xiàn)其中有一個init方法,于是在這個方法打了斷點,在應(yīng)用啟動的時候進行跟蹤,這篇文章主要介紹了spring security之 默認(rèn)登錄頁源碼跟蹤,需要的朋友可以參考下2021-11-11
解決在微服務(wù)環(huán)境下遠程調(diào)用feign和異步線程存在請求數(shù)據(jù)丟失問題
這篇文章主要介紹了解決在微服務(wù)環(huán)境下遠程調(diào)用feign和異步線程存在請求數(shù)據(jù)丟失問題,主要包括無異步線程得情況下feign遠程調(diào)用,異步情況下丟失上下文問題,需要的朋友可以參考下2022-05-05
Spring Security登錄添加驗證碼的實現(xiàn)過程
這篇文章主要介紹了Spring Security登錄添加驗證碼的實現(xiàn)過程,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-11-11
String StringBuilder StringBuffer區(qū)別以及源碼分析
string是C++標(biāo)準(zhǔn)庫的一個重要的部分,主要用于字符串處理??梢允褂幂斎胼敵隽鞣绞街苯舆M行string操作,同時,C++的算法庫對string類也有著很好的支持,并且string類還和c語言的字符串之間有著良好的接口2021-06-06

