java如何自動(dòng)補(bǔ)齊數(shù)值至指定位數(shù)
java自動(dòng)補(bǔ)齊數(shù)值至指定位數(shù)
如流水號需要在數(shù)字前自動(dòng)補(bǔ)齊0,至指定位數(shù)。
如果已經(jīng)達(dá)到了指定位數(shù),不會(huì)補(bǔ)齊,返回原數(shù)值。
? ? /** ? ? ?* 自動(dòng)補(bǔ)齊位數(shù) ? ? ?* @param length 補(bǔ)齊后的位數(shù) ? ? ?* @param num 待補(bǔ)齊的數(shù)值 ? ? ?* @return ? ? ?*/ ? ? public static String pad(int length,long num){ ? ? ? ? return String.format("%0".concat(String.valueOf(length)).concat("d"), num); ? ? }
java字符串前補(bǔ)零和后補(bǔ)零的快速方法
數(shù)字字符串替換方法
? ? ? ? String fileName = "130181"; ? ? ? ? System.out.println("================ ?前補(bǔ)零方法一 ? ================="); ? ? ? ? DecimalFormat g1=new DecimalFormat("0000000"); ? ? ? ? String startZeroStr = g1.format(Integer.valueOf(fileName)); ? ? ? ? System.out.println("前補(bǔ)零方法一:"+startZeroStr); ? ? ? ? System.out.println("================ ?前補(bǔ)零方法二,此方法不能對非數(shù)字字符串替換,非數(shù)字的在最后有方法 ? ================="); ? ? ? ? startZeroStr = String.format("%07d",Integer.valueOf(fileName)); ? ? ? ? System.out.println("前補(bǔ)零方法二:"+startZeroStr); ? ? ? ? System.out.println("================ ?后補(bǔ)零方法一 ? ================="); ? ? ? ? DecimalFormat g2=new DecimalFormat("0.000000"); ? ? ? ? String endZeroStr = g2.format(Integer.valueOf(fileName)); ? ? ? ? System.out.println("后補(bǔ)零:"+endZeroStr); ? ? ? ? System.out.println("雖然后補(bǔ)零出現(xiàn)這種情況,帶有小數(shù)點(diǎn)"); ? ? ? ? System.out.println("比如你要長度要在7位以內(nèi),可以這么做"); ? ? ? ? System.out.println("后補(bǔ)零轉(zhuǎn)變后:"+endZeroStr.replace(".","").substring(0,7));
輸出結(jié)果如下:(后補(bǔ)零后邊還有)
================ 前補(bǔ)零方法一 =================
前補(bǔ)零方法一:0130181
================ 前補(bǔ)零方法二 =================
前補(bǔ)零方法二:0130181
================ 后補(bǔ)零方法一 =================
后補(bǔ)零:130181.000000
雖然后補(bǔ)零出現(xiàn)這種情況,帶有小數(shù)點(diǎn)
比如你要長度要在7位以內(nèi),可以這么做
后補(bǔ)零轉(zhuǎn)變后:1301810
當(dāng)然,后補(bǔ)零通過上邊也能知道就是后邊多補(bǔ)幾個(gè)零,然后截取就行了,其實(shí)也不用像上邊那么費(fèi)勁了。直接對內(nèi)容加上一堆零,然后再截取,如下是對某個(gè)值補(bǔ)15個(gè)零的方法,感覺這才是最直接的后補(bǔ)零。。。
(ynzlJjzz.getCode()+"0000000000000000").substring(0,15)
非數(shù)字字符串前補(bǔ)零
最近有個(gè)大佬提了個(gè)問題,對非數(shù)字字符串前補(bǔ)零,用%4d替換肯定是不行的,因?yàn)?d對應(yīng)的就是數(shù)字格式,如果想對AA字符串前補(bǔ)零到4位,可以這樣寫:
String.format("%4s", "AA").replace(" ","0")
相當(dāng)于先對字符串轉(zhuǎn),以空格補(bǔ)滿位數(shù),然后再將空格整體替換為目標(biāo)0。也是一個(gè)方法。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Sentinel熱門詞匯限流的實(shí)現(xiàn)詳解
這篇文章主要介紹了使用Sentinel對熱門詞匯進(jìn)行限流的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07spring?和?idea?建議不要使用?@Autowired注解的原因解析
@Autowired?是Spring框架的注解,而@Resource是JavaEE的注解,這篇文章主要介紹了spring和idea建議不要使用@Autowired注解的相關(guān)知識,需要的朋友可以參考下2023-11-11【Java IO流】字節(jié)流和字符流的實(shí)例講解
下面小編就為大家?guī)硪黄綣ava IO流】字節(jié)流和字符流的實(shí)例講解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09SpringBoot實(shí)現(xiàn)各種參數(shù)校驗(yàn)總結(jié)(建議收藏!)
本文深入解析了Spring?Validation的使用方法、實(shí)現(xiàn)原理及最佳實(shí)踐,詳細(xì)介紹了各種參數(shù)校驗(yàn)場景,如requestBody和requestParam/PathVariable的使用,并探討了分組校驗(yàn)、嵌套校驗(yàn)和自定義校驗(yàn)的高級應(yīng)用,需要的朋友可以參考下2024-09-09使用Lombok時(shí)@JsonIgnore注解失效解決方案
這篇文章主要為大家介紹了使用Lombok時(shí)@JsonIgnore注解失效問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-064個(gè)Java8中你需要知道的函數(shù)式接口分享
Java?8?中提供了許多函數(shù)式接口,包括Function、Consumer、Supplier、Predicate?等等。本文主要來和大家介紹一下它們的具體使用,需要的可以參考一下2023-04-045分鐘讓你快速掌握java8 stream常用開發(fā)技巧
這篇文章主要給大家介紹了關(guān)于java8 stream常用開發(fā)技巧的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12IDEA Spring Boot 自動(dòng)化構(gòu)建+部署的實(shí)現(xiàn)
這篇文章主要介紹了IDEA Spring Boot 自動(dòng)化構(gòu)建+部署的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01