java如何自動(dòng)補(bǔ)齊數(shù)值至指定位數(shù)
java自動(dòng)補(bǔ)齊數(shù)值至指定位數(shù)
如流水號(hào)需要在數(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ǔ)零方法二,此方法不能對(duì)非數(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("比如你要長(zhǎng)度要在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)
比如你要長(zhǎng)度要在7位以內(nèi),可以這么做
后補(bǔ)零轉(zhuǎn)變后:1301810
當(dāng)然,后補(bǔ)零通過(guò)上邊也能知道就是后邊多補(bǔ)幾個(gè)零,然后截取就行了,其實(shí)也不用像上邊那么費(fèi)勁了。直接對(duì)內(nèi)容加上一堆零,然后再截取,如下是對(duì)某個(gè)值補(bǔ)15個(gè)零的方法,感覺(jué)這才是最直接的后補(bǔ)零。。。
(ynzlJjzz.getCode()+"0000000000000000").substring(0,15)
非數(shù)字字符串前補(bǔ)零
最近有個(gè)大佬提了個(gè)問(wèn)題,對(duì)非數(shù)字字符串前補(bǔ)零,用%4d替換肯定是不行的,因?yàn)?d對(duì)應(yīng)的就是數(shù)字格式,如果想對(duì)AA字符串前補(bǔ)零到4位,可以這樣寫(xiě):
String.format("%4s", "AA").replace(" ","0")相當(dāng)于先對(duì)字符串轉(zhuǎn),以空格補(bǔ)滿位數(shù),然后再將空格整體替換為目標(biāo)0。也是一個(gè)方法。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于SpringBoot配置項(xiàng)的優(yōu)先級(jí),不再有配置不生效的問(wèn)題
這篇文章主要介紹了關(guān)于SpringBoot配置項(xiàng)的優(yōu)先級(jí),不再有配置不生效的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04
MyBatis高級(jí)映射及延遲加載的實(shí)現(xiàn)
MyBatis在處理對(duì)象關(guān)系映射時(shí),多對(duì)一關(guān)系是常見(jiàn)的場(chǎng)景,本文就來(lái)介紹了MyBatis高級(jí)映射及延遲加載的實(shí)現(xiàn),感興趣的可以了解一下2024-11-11
java中l(wèi)ambda表達(dá)式的分析與具體用法
這篇文章主要給大家介紹了關(guān)于java中l(wèi)ambda表達(dá)式具體用法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
如何把VS Code打造成Java開(kāi)發(fā)IDE
這篇文章主要介紹了如何把VS Code打造成Java開(kāi)發(fā)IDE,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10
Java14對(duì)于NullPointerException的新處理方式示例解析
這篇文章主要為大家介紹了Java14對(duì)于NullPointerException的新處理方式示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09

