Pad en streng med nuller eller mellemrum i Java

1. Oversigt

I denne korte vejledning vil vi se, hvordan du padder en Snor i Java. Vi fokuserer hovedsageligt på en venstre pude, hvilket betyder at vi tilføjer de førende mellemrum eller nuller til den, indtil den når den ønskede længde.

Tilgangen til højre polstret Snor er meget ens, så vi vil kun påpege forskellene.

2. Pude a Snor Brug af brugerdefinerede metoder

Det Snor klasse i Java giver ikke en praktisk metode til polstring, så lad os oprette flere metoder alene. Lad os dog først stille nogle forventninger:

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

2.1. Ved brug af StringBuilder

Vi kan opnå dette med StringBuilder og noget procedurelogik:

public String padLeftZeros (String inputString, int length) {if (inputString.length ()> = length) {return inputString; } StringBuilder sb = ny StringBuilder (); mens (sb.length () <længde - inputString.length ()) {sb.append ('0'); } sb.append (inputString); returner sb.toString (); }

Vi kan her se, at hvis originaltekstens længde er lig med eller større end den ønskede længde, returnerer vi den uændrede version af den. Ellers opretter vi et nyt Snor, starter med mellemrum og tilføjer den originale.

Selvfølgelig, hvis vi ville pad med en anden karakter kunne vi bare bruge den i stedet for en 0.

Ligeledes, hvis vi ønsker at rette pad, er vi bare nødt til at gøre nyStringBuilder (inputString) i stedet for og tilføj derefter mellemrummet i slutningen.

2.2. Ved brug af underlag

En anden måde at gøre venstre polstring på er at lave en Snor med den ønskede længde, der kun indeholder padtegn, og brug derefter understreng () metode:

StringBuilder sb = ny StringBuilder (); for (int i = 0; i <længde; i ++) {sb.append (''); } returner sb.substring (inputString.length ()) + inputString;

2.3. Ved brug af Streng.format

Og endelig, siden Java 5, kan vi bruge Snor.format():

returner String.format ("% 1 $" + længde + "s", inputString) .placering ('', '0');

Vi skal bemærke, at udfyldningsoperationen som standard udføres ved hjælp af mellemrum. Det er grunden til, at vi skal bruge erstatte() metode, hvis vi vil blokere med nuller eller et hvilket som helst andet tegn.

For den rigtige pude skal vi bare bruge et andet flag: %1$-

3. Pude a Snor Brug af biblioteker

Og der er eksterne biblioteker, der allerede tilbyder polstringsfunktioner.

3.1. Apache Commons Lang

Apache Commons Lang tilbyder en pakke med Java-hjælpeklasser. En af de mest populære er StringUtils.

For at bruge det skal vi medtage det i vores projekt ved at tilføje dets afhængighed til vores pom.xml fil:

 org.apache.commons commons-lang3 3.8.1 

Og så passerer vi inputString og længde, ligesom de metoder, vi skabte. Vi kan også videregive polstringskarakteren:

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

Igen, den Snor vil være polstret med mellemrum som standard, eller vi skal udtrykkeligt indstille en anden pad-karakter.

Der er også tilsvarende rightPad () metoder.

For at udforske flere funktioner i Apache Commons Lang 3 kan du tjekke vores introduktionsvejledning. Hvis du gerne vil se andre måder af Snor manipulation ved hjælp af StringUtils klasse, se venligst denne artikel.

3.2. Google Guava

Et andet bibliotek, som vi kan bruge, er Googles Guava. Selvfølgelig skal vi først tilføje det til projektet ved at tilføje dets afhængighed:

 com.google.guava guava 27.0-jre 

Og brug derefter Strenge klasse:

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

Der er ingen standard padkarakter i denne metode, så vi skal sende den hver gang.

Til højre pad kan vi bruge padEnd () metode.

Guava-biblioteket tilbyder meget flere funktioner, og vi har dækket mange af dem. Du kan se her for de Guava-relaterede artikler.

4. Konklusion

I denne hurtige artikel illustrerede vi, hvordan vi kan blokere en Snor i Java. Vi præsenterede eksempler ved hjælp af vores egne implementeringer eller eksisterende biblioteker.

Som sædvanlig kan en komplet kildekode findes på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found