Podstavite niz s nulama ili razmacima na Javi

1. Pregled

U ovom kratkom vodiču vidjet ćemo kako dodati a Niz na Javi. Fokusirat ćemo se uglavnom na lijevu podlogu, što znači da ćemo joj dodavati vodeće razmake ili nule dok ne dosegne željenu duljinu.

Pristup za desnu podstavljenu Niz je vrlo sličan, pa ćemo samo ukazati na razlike.

2. Jastučić a Niz Korištenje prilagođenih metoda

The Niz class u Javi ne nudi prikladnu metodu za popunjavanje, pa kreirajmo nekoliko metoda sami. Prvo, postavimo neka očekivanja:

assertEquals ("123456", padLeftZeros ("123456", 10)); assertEquals ("0000123456", padLeftZeros ("123456", 10));

2.1. Koristeći StringBuilder

To možemo postići s StringBuilder i neka proceduralna logika:

javni String padLeftZeros (String inputString, int length) {if (inputString.length ()> = length) {return inputString; } StringBuilder sb = novi StringBuilder (); while (sb.length () <length - inputString.length ()) {sb.append ('0'); } sb.append (inputString); vratiti sb.toString (); }

Ovdje možemo vidjeti da ako je duljina izvornog teksta jednaka ili veća od željene duljine, vraćamo nepromijenjenu verziju. Inače, stvaramo novo Niz, počevši od razmaka i dodajući izvorni.

Naravno, ako bismo htjeli jastučić s drugim znakom, mogli bismo ga jednostavno koristiti umjesto 0.

Isto tako, ako želimo desnu podlogu, samo to moramo učiniti noviStringBuilder (inputString) umjesto toga, a zatim dodajte razmake na kraju.

2.2. Koristeći podniz

Drugi način za lijevo popunjavanje je stvoriti Niz sa željenom duljinom koja sadrži samo znakove jastučića, a zatim upotrijebite podniz () metoda:

StringBuilder sb = novi StringBuilder (); za (int i = 0; i <duljina; i ++) {sb.append (''); } return sb.substring (inputString.length ()) + inputString;

2.3. Koristeći String.format

I, konačno, od Jave 5 možemo koristiti Niz.format():

vrati String.format ("% 1 $" + dužina + "s", inputString) .replace ('', '0');

Trebali bismo napomenuti da će se zadana operacija popunjavanja izvoditi pomoću razmaka. To je razlog zašto trebamo koristiti zamijeniti() metodu ako želimo dodavati nule ili bilo koji drugi znak.

Za pravi jastučić moramo samo upotrijebiti drugu zastavicu: %1$-

3. Jastučić a Niz Korištenje knjižnica

Postoje i vanjske knjižnice koje već nude funkcije popunjavanja.

3.1. Apache Commons Lang

Apache Commons Lang nudi paket klasa Java programa. Jedan od najpopularnijih je StringUtils.

Da bismo ga koristili, morat ćemo ga uključiti u naš projekt dodavanjem njegove ovisnosti o našem pom.xml datoteka:

 org.apache.commons commons-lang3 3.8.1 

A onda prolazimo inputString i duljina, baš kao i metode koje smo stvorili. Također možemo proslijediti znak popunjavanja:

assertEquals ("123456", StringUtils.leftPad ("123456", 10)); assertEquals ("0000123456", StringUtils.leftPad ("123456", 10, "0"));

Opet, Niz bit će podstavljen razmacima prema zadanim postavkama ili moramo izričito postaviti drugi znak jastučića.

Postoje i odgovarajuće rightPad () metode.

Da biste istražili više značajki Apache Commons Lang 3, možete pogledati naš uvodni vodič. Ako biste željeli vidjeti drugi načini Niz manipulacija pomoću StringUtils klase, pogledajte ovaj članak.

3.2. Google Guava

Još jedna knjižnica koju možemo koristiti je Googleova Guava. Naravno, prvo ga moramo dodati projektu dodavanjem njegove ovisnosti:

 com.google.guava guava 27,0-jre 

A zatim upotrijebite Žice razred:

assertEquals ("123456", Strings.padStart ("123456", 10, '')); assertEquals ("0000123456", Strings.padStart ("123456", 10, '0'));

U ovoj metodi ne postoji zadani znak jastučića, pa ga moramo svaki put proslijediti.

S desne podloge možemo koristiti padEnd () metoda.

Knjižnica Guava nudi mnogo više značajki i pokrili smo puno njih. Ovdje možete potražiti članke povezane s Guavom.

4. Zaključak

U ovom kratkom članku ilustrirali smo kako možemo podložiti a Niz na Javi. Predstavili smo primjere koristeći vlastite implementacije ili postojeće knjižnice.

Kao i obično, cjeloviti izvorni kod možete pronaći na GitHubu.