Vul een string in met nullen of spaties in Java

1. Overzicht

In deze korte tutorial zullen we zien hoe je een Draad in Java. We concentreren ons voornamelijk op een linkerkussen, wat betekent dat we de voorloopspaties of nullen eraan toevoegen totdat het de gewenste lengte heeft bereikt.

De aanpak voor de juiste opgevuld Draad lijkt erg op elkaar, dus we wijzen alleen op de verschillen.

2. Pad a Draad Aangepaste methoden gebruiken

De Draad class in Java biedt geen handige methode voor opvulling, dus laten we zelf verschillende methoden maken. Maar laten we eerst wat verwachtingen stellen:

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

2.1. Gebruik makend van StringBuilder

Dit kunnen we bereiken met StringBuilder en wat procedurele logica:

public String padLeftZeros (String inputString, int length) {if (inputString.length ()> = length) {return inputString; } StringBuilder sb = nieuwe StringBuilder (); while (sb.length () <lengte - inputString.length ()) {sb.append ('0'); } sb.append (inputString); retourneer sb.toString (); }

We kunnen hier zien dat als de lengte van de originele tekst gelijk is aan of groter is dan de gewenste lengte, we de ongewijzigde versie ervan retourneren. Anders maken we een nieuw Draad, te beginnen met spaties en de originele toe te voegen.

Natuurlijk, als we dat wilden pad met een ander karakter zouden we het gewoon kunnen gebruiken in plaats van een 0.

Evenzo, als we de juiste pad willen, hoeven we dat alleen maar te doen nieuwStringBuilder (inputString) in plaats daarvan en voeg vervolgens de spaties aan het einde toe.

2.2. Gebruik makend van deelstring

Een andere manier om de linker opvulling te doen, is door Maak een Draad met de gewenste lengte die alleen pad-tekens bevat en gebruik vervolgens de deelstring () methode:

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

2.3. Gebruik makend van String.format

En ten slotte kunnen we sinds Java 5 Draad.formaat():

return String.format ("% 1 $" + lengte + "s", inputString) .replace ('', '0');

We moeten er rekening mee houden dat de opvulbewerking standaard wordt uitgevoerd met spaties. Dat is de reden waarom we de vervangen() methode als we willen opvullen met nullen of een ander teken.

Voor de juiste pad hoeven we alleen maar een andere vlag te gebruiken: %1$-

3. Pad a Draad Bibliotheken gebruiken

En er zijn externe bibliotheken die al opvulfunctionaliteiten bieden.

3.1. Apache Commons Lang

Apache Commons Lang biedt een pakket met Java-hulpprogramma-klassen. Een van de meest populaire is de StringUtils.

Om het te gebruiken, moeten we het in ons project opnemen door zijn afhankelijkheid toe te voegen aan ons pom.xml het dossier:

 org.apache.commons commons-lang3 3.8.1 

En dan passeren we de inputString en de lengte, net als de methoden die we hebben gemaakt. We kunnen ook het opvulkarakter doorgeven:

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

Nogmaals, de Draad wordt standaard opgevuld met spaties of we moeten expliciet een ander pad-teken instellen.

Er zijn ook overeenkomstige rightPad () methoden.

Om meer functies van de Apache Commons Lang 3 te ontdekken, kun je onze inleidende tutorial bekijken. Als je het zou willen zien andere manieren van de Draad manipulatie met behulp van de StringUtils klas, verwijzen wij u naar dit artikel.

3.2. Google Guava

Een andere bibliotheek die we kunnen gebruiken, is Google's Guava. Natuurlijk moeten we het eerst aan het project toevoegen door zijn afhankelijkheid toe te voegen:

 com.google.guava guave 27.0-jre 

En gebruik dan de Snaren klasse:

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

Er is geen standaard pad-teken in deze methode, dus we moeten het elke keer doorgeven.

Aan de rechterkant kunnen we gebruiken padEnd () methode.

De Guava-bibliotheek biedt veel meer functies en we hebben er veel behandeld. U kunt hier zoeken naar de Guava-gerelateerde artikelen.

4. Conclusie

In dit korte artikel hebben we geïllustreerd hoe we een Draad in Java. We presenteerden voorbeelden met behulp van onze eigen implementaties of bestaande bibliotheken.

Zoals gewoonlijk is een volledige broncode te vinden op GitHub.