Hoe een string in Java om te keren

1. Overzicht

In deze korte tutorial gaan we zien hoe we een Draad in Java.

We beginnen deze verwerking uit te voeren met behulp van gewone Java-oplossingen. Vervolgens zullen we de opties bekijken die de bibliotheken van derden, zoals Apache Commons, bieden.

Verder zullen we demonstreren hoe je de volgorde van woorden in een zin omdraait.

2. Een traditioneel voor Lus

We weten dat strings onveranderlijk zijn in Java. Een onveranderlijk object is een object waarvan interne toestand blijft constant nadat het volledig is gemaakt.

Daarom kunnen we een Draad door het te wijzigen. We moeten er nog een maken Draad om deze reden.

Laten we eerst een eenvoudig voorbeeld bekijken met een voor lus. We gaan de Draad invoer van het laatste naar het eerste element en voeg elk karakter samen tot een nieuw Draad:

public String reverse (String input) {if (input == null) {return input; } String output = ""; for (int i = input.length () - 1; i> = 0; i--) {output = output + input.charAt (i); } terugkeer output; }

Zoals we kunnen zien, moeten we voorzichtig zijn met de hoekgevallen en ze afzonderlijk behandelen.

Om het voorbeeld beter te begrijpen, kunnen we een unit-test bouwen:

@Test openbare leegte whenReverseIsCalled_ThenCorrectStringIsReturned () {String reversed = ReverseStringExamples.reverse ("kat"); String reversedNull = ReverseStringExamples.reverse (null); String reversedEmpty = ReverseStringExamples.reverse (StringUtils.EMPTY); assertEquals ("tac", omgekeerd); assertEquals (null, reversedNull); assertEquals (StringUtils.EMPTY, reversedEmpty); }

3. A StringBuilder

Java biedt ook enkele mechanismen zoals StringBuilder en StringBuffer die een veranderlijke reeks karakters creëren. Deze objecten hebben een omgekeerde() methode die ons helpt het gewenste resultaat te bereiken.

Hier moeten we een StringBuilder van de Draad input en roep vervolgens de omgekeerde() methode:

public String reverseUsingStringBuilder (String-invoer) {if (input == null) {return null; } StringBuilder output = nieuwe StringBuilder (input) .reverse (); return output.toString (); }

4. Apache Commons

Apache Commons is een populaire Java-bibliotheek met veel hulpprogramma-klassen, waaronder stringmanipulatie.

Om Apache Commons te gaan gebruiken, moeten we zoals gewoonlijk eerst de Maven-afhankelijkheid toevoegen:

 org.apache.commons commons-lang3 3.9 

De StringUtils class is wat we hier nodig hebben omdat het de omgekeerde() methode vergelijkbaar met StringBuilder.

Een voordeel van het gebruik van deze bibliotheek is dat zijn hulpprogramma-methoden presteren nul-veilige operaties. We hoeven de randgevallen dus niet apart te behandelen.

Laten we een methode maken die aan ons doel voldoet en de StringUtils klasse:

openbare String reverseUsingApacheCommons (String-invoer) {return StringUtils.reverse (invoer); }

Als we nu naar deze drie methoden kijken, kunnen we zeker zeggen dat de derde de eenvoudigste en minst foutgevoelig manier om een Draad.

5. De volgorde van woorden in een zin omkeren

Laten we nu aannemen dat we een zin hebben met woorden gescheiden door spaties en zonder leestekens. We moeten de volgorde van de woorden in deze zin omdraaien.

We kunnen dit probleem in twee stappen oplossen: de zin splitsen door middel van het scheidingsteken en vervolgens de woorden in omgekeerde volgorde aaneenschakelen.

Eerst laten we een klassieke benadering zien. We gaan de S gebruikentring.split () methode om het eerste deel van ons probleem te vervullen. Vervolgens gaan we terug door de resulterende array en voegen we de woorden samen met een StringBuilder. Natuurlijk moeten we ook een spatie tussen deze woorden toevoegen:

public String reverseTheOrderOfWords (String zin) {if (zin == null) {retourneer null; } StringBuilder output = nieuwe StringBuilder (); String [] woorden = zin.split (""); for (int i = words.length - 1; i> = 0; i--) {output.append (words [i]); output.append (""); } return output.toString (). trim (); }

Ten tweede zullen we overwegen om de Apache Commons-bibliotheek te gebruiken. Nogmaals, het helpt ons om een ​​beter leesbare en minder foutgevoelige code te krijgen. We hoeven alleen het StringUtils.reverseDelimited () methode met de invoerzin en het scheidingsteken als argumenten:

openbare String reverseTheOrderOfWordsUsingApacheCommons (String zin) {return StringUtils.reverseDelimited (zin, ''); }

6. Conclusie

In deze tutorial hebben we eerst gekeken naar verschillende manieren om een ​​om te keren Draad in Java. We hebben enkele voorbeelden doorgenomen met kern-Java, evenals met een populaire bibliotheek van derden, zoals Apache Commons.

Vervolgens hebben we gezien hoe u de volgorde van woorden in een zin in twee stappen kunt omkeren. Deze stappen kunnen ook nuttig zijn bij het verkrijgen van andere permutaties van een zin.

Zoals gewoonlijk zijn alle codevoorbeelden die in deze tutorial worden getoond, beschikbaar op GitHub.


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