Een voorvoegsel verwijderen uit strings in Groovy

1. Inleiding

In deze korte tutorial leren we hoe je het voorvoegsel uit een string in Groovy kunt verwijderen.

Eerst kijken we wat de Draad klasaanbiedingen voor dit doel. Daarna gaan we verder met reguliere expressies en kijken hoe we deze kunnen gebruiken om een ​​voorvoegsel te verwijderen.

2. Met behulp van Draad Methoden

Over het algemeen wordt Groovy beschouwd als een dynamische taal voor het Java-ecosysteem. Daarom kunnen we nog steeds elke Java gebruiken Draad class-methode samen met nieuwe Groovy-methoden. Voor het verwijderen van het voorvoegsel is er echter nog steeds geen eenvoudige methode zoals removePrefix ().

Het verwijderen van een voorvoegsel uit Groovy-strings bestaat uit twee stappen: eerst bevestigen en dan verwijderen. Beide stappen kunnen worden uitgevoerd met de StringGroovyMethods klasse die veel hulpprogramma-methoden biedt voor stringmanipulaties.

2.1. begint met() Methode

De beginnen met() method test of een string begint met een specifiek voorvoegsel. Het keert terug waar als het voorvoegsel bestaat en false anders.

Laten we beginnen met een groovy sluiting:

@Test openbare leegte whenCasePrefixIsRemoved_thenReturnTrue () {def trimPrefix = {it.startsWith ('Groovy-')? it.minus ('Groovy-'): it} def actual = trimPrefix ("Groovy-Tutorials at Baeldung") def verwacht = "Tutorials at Baeldung" assertEquals (verwacht, actueel)} 

Zodra het bestaan ​​is bevestigd, kunnen we ook de deelstring () methode om het te verwijderen:

trimPrefix.substring ('Groovy -'. length ()) 

2.2. startsWithIgnoreCase () Methode

De begint met() methode is hoofdlettergevoelig. Er is dus een handmatige inspanning vereist om het effect van de zaak teniet te doen, hetzij door de toLowerCase () of toUpperCase () methoden.

Zoals de naam doet vermoeden, is de startsWithIgnoreCase () zoekt een voorvoegsel zonder hoofdlettergebruik. Het retourneert true als er een voorvoegsel bestaat en anders false.

Laten we eens kijken hoe u deze methode kunt gebruiken:

@Test public void whenPrefixIsRemovedWithIgnoreCase_thenReturnTrue () {String prefix = "groovy-" String trimPrefix = "Groovy-Tutorials at Baeldung" def actueel if (trimPrefix.startsWithIgnoreCase (prefix)) {actual = trimPrefix (prefix ).substring def verwachte = "Tutorials at Baeldung" assertEquals (verwacht, actueel)} 

2.3. startsWithAny () Methode

De bovenstaande oplossingen zijn handig als we slechts één voorvoegsel moeten controleren. Als het gaat om het controleren van meerdere voorvoegsels, biedt Groovy ook ondersteuning om meerdere voorvoegsels te controleren.

De startsWithAny () methode controleert of het CharSequence begint met een opgegeven voorvoegsel. Zodra het voorvoegsel is bevestigd, kunnen we logica toepassen volgens de vereisten:

String trimPrefix = "Groovy-Tutorials at Baeldung" if (trimPrefix.startsWithAny ("Java", "Groovy", "Linux")) {// logica om voorvoegsel te verwijderen} 

3. Regex gebruiken

Een reguliere expressie is een krachtige manier om een ​​patroon te matchen of te vervangen. Groovy heeft een patroonoperator ~ die een eenvoudige manier biedt om een java.util.regex.Pattern voorbeeld.

Laten we een eenvoudige reguliere expressie definiëren om een ​​voorvoegsel te verwijderen:

@Test public void whenPrefixIsRemovedUsingRegex_thenReturnTrue () {def regex = ~ "^ groovy-" String trimPrefix = "groovy-Tutorials op Baeldung" String actual = trimPrefix - regex def verwacht = "Tutorials op Baeldung" assertEquals ("Tutorials at Baeldung" assertEquals )} 

De hoofdletterongevoelige versie van de bovenstaande reguliere expressie:

def regex = ~ "^ ([Gg]) roovy-" 

De caret-operator ^ zorgt ervoor dat de opgegeven subtekenreeks aan het begin bestaat.

3.1. replaceFirst () Methode

Door reguliere expressies samen met native strings-methoden te gebruiken, kunnen we zeer krachtige trucs uitvoeren. De replaceFirst () methode is een van deze methoden. Het vervangt het eerste exemplaar dat overeenkomt met de opgegeven reguliere expressie.

Laten we een voorvoegsel verwijderen met de replaceFirst () methode:

@Test openbare leegte whenPrefixIsRemovedUsingReplaceFirst_thenReturnTrue () {def regex = ~ "^ groovy" String trimPrefix = "groovyTutorials op Baeldung's groovy pagina" String actual = trimPrefix.replaceFirst (regex, "") defovy-pagina (regex, "") def verwachte Baeldungs ​​tutorials verwacht, actueel)} 

3.2. vervang alles() Methode

Net als replaceFirst (), de vervang alles() accepteert ook een reguliere expressie en gegeven vervanging. Het vervangt elke subtekenreeks die overeenkomt met de opgegeven criteria. Om een ​​voorvoegsel te verwijderen, kunnen we deze methode ook gebruiken.

Laten we gebruiken vervang alles() om een ​​substring alleen aan het begin van de string te vervangen:

@Test openbare leegte whenPrefixIsRemovedUsingReplaceAll_thenReturnTrue () {String trimPrefix = "groovyTutorials bij Baeldung groovy" String actual = trimPrefix.replaceAll (/ ^ groovy /, "") def verwacht = "Tutorials op Baeldung groovy" (assertEquals) 

4. Conclusie

In deze korte tutorial hebben we verschillende manieren onderzocht om voorvoegsels uit een string te verwijderen. Om het bestaan ​​van een voorvoegsel te bevestigen, hebben we gezien hoe u dit kunt doen voor zowel hoofdletters als kleine letters.

Tegelijkertijd hebben we gezien hoe we een voorvoegsel kunnen detecteren tussen de vele geleverde subtekenreeksen. We hebben ook gekeken naar meerdere methoden die kunnen worden gebruikt om een ​​substring te verwijderen. Ten slotte hebben we kort de rol van regex voor dit doel besproken.

Zoals altijd zijn alle codevoorbeelden te vinden op GitHub.