Tegyen egy karakterláncot nullával vagy szóközzel a Java-ban
1. Áttekintés
Ebben a rövid bemutatóban megtudhatjuk, hogyan kell kitölteni a Húr Java-ban. Főként egy bal oldali betűre összpontosítunk, vagyis hozzáadjuk a vezető szóközöket vagy nullákat, amíg el nem éri a kívánt hosszat.
A megközelítés a jobb párnázott Húr nagyon hasonló, ezért csak rámutatunk a különbségekre.
2. Pad a Húr Egyéni módszerek használata
A Húr osztály a Java-ban nem nyújt kényelmes módszert a kitöltésre, ezért készítsünk több metódust önállóan. Először is tegyünk néhány elvárást:
assertEquals ("123456", padLeftZeros ("123456", 10)); assertEquals ("0000123456", padLeftZeros ("123456", 10));
2.1. Használata StringBuilder
Ezzel elérhetjük StringBuilder és néhány eljárási logika:
public String padLeftZeros (String inputString, int length) {if (inputString.length ()> = hossz) {return inputString; } StringBuilder sb = új StringBuilder (); while (sb.length () <length - inputString.length ()) {sb.append ('0'); } sb.append (inputString); return sb.toString (); }
Itt láthatjuk, hogy ha az eredeti szöveg hossza egyenlő vagy nagyobb, mint a kívánt hosszúság, akkor annak változatlan változatát adjuk vissza. Ellenkező esetben létrehozunk egy újat Húr, szóközökkel kezdve és hozzáadva az eredetit.
Természetesen, ha akarnánk más karakterű padot egyszerűen használhatnánk a helyett 0.
Hasonlóképpen, ha jobbra akarjuk helyezni a padot, akkor csak meg kell tennünk újStringBuilder (inputString) ehelyett, majd adja hozzá a szóközöket a végén.
2.2. Használata szubsztring
A bal párnázás másik módja a hozzon létre egy Húr kívánt hosszúsággal, amely csak betűket tartalmaz, majd használja a szubsztring () módszer:
StringBuilder sb = új StringBuilder (); for (int i = 0; i <hossz; i ++) {sb.append (''); } return sb.substring (inputString.length ()) + inputString;
2.3. Használata Karakterlánc.formátum
És végül, a Java 5 óta használhatjuk Húr.formátum():
return String.format ("% 1 $" + hossz + "s", inputString) .replace ('', '0');
Meg kell jegyeznünk, hogy alapértelmezés szerint a kitöltési műveletet szóközökkel kell végrehajtani. Ezért kell használnunk a cserélje () metódus, ha nullákkal vagy bármilyen más karakterrel akarunk párnázni.
A megfelelő betéthez csak egy másik zászlót kell használnunk: %1$-
3. Pad a Húr Könyvtárak használata
És vannak olyan külső könyvtárak, amelyek már kínálnak kitöltési funkciókat.
3.1. Apache Commons Lang
Az Apache Commons Lang egy Java segédprogram osztályt tartalmaz. Az egyik legnépszerűbb a StringUtils.
Használatához be kell építenünk a projektünkbe, hozzáadva annak függőségét a projektünkhöz pom.xml fájl:
org.apache.commons commons-lang3 3.8.1
És akkor elhaladunk a inputString és a hossz, csakúgy, mint az általunk létrehozott módszerek. Átadhatjuk a párnázási karaktert is:
assertEquals ("123456", StringUtils.leftPad ("123456", 10)); assertEquals ("0000123456", StringUtils.leftPad ("123456", 10, "0"));
Ismét a Húr alapértelmezés szerint szóközökkel lesz töltve, vagy kifejezetten be kell állítanunk egy másik betű karaktert.
Vannak megfelelőek is rightPad () mód.
Az Apache Commons Lang 3 további funkcióinak felfedezéséhez tekintse meg bemutatkozó bemutatónkat. Ha szeretné látni egyéb módjai a Húr manipuláció a StringUtils osztály, kérjük, olvassa el ezt a cikket.
3.2. Google Guava
Egy másik könyvtár, amelyet használhatunk, a Google Guava. Természetesen először hozzá kell adnunk a projekthez, hozzáadva annak függőségét:
com.google.guava guava 27.0-jre
És akkor használja a Húrok osztály:
assertEquals ("123456", Strings.padStart ("123456", 10, '')); assertEquals ("0000123456", Strings.padStart ("123456", 10, '0'));
Ebben a módszerben nincs alapértelmezett pad karakter, ezért minden alkalommal át kell adnunk.
Jobb padra használhatjuk padEnd () módszer.
A guava-i könyvtár sokkal több funkciót kínál, és ezek közül sokat lefedtünk. Itt megnézheti a guavával kapcsolatos cikkeket.
4. Következtetés
Ebben a gyors cikkben bemutattuk, hogyan lehet a Húr Java-ban. Példákat mutattunk be saját implementációink vagy meglévő könyvtárak felhasználásával.
Szokás szerint a teljes forráskód megtalálható a GitHubon.