Hvordan fjerne et prefiks fra strenger i Groovy

1. Introduksjon

I denne raske opplæringen lærer vi hvordan du fjerner prefikset fra en streng i Groovy.

Først skal vi se på hva String klassetilbud for dette formålet. Etter det går vi videre til vanlige uttrykk og ser hvordan vi kan bruke dem til å fjerne et prefiks.

2. Bruke String Metoder

Groovy blir generelt sett på som et dynamisk språk for Java-økosystemet. Derfor kan vi fortsatt bruke alle Java String klassemetode sammen med nye Groovy. Imidlertid, for fjerning av prefikset, er det fortsatt et fravær av en enkel metode som removePrefix ().

Fjerning av et prefiks fra Groovy-strenger består av to trinn: først bekreftelse og deretter fjerning. Begge disse trinnene kan utføres ved hjelp av StringGroovyMethods klasse som tilbyr mange verktøymetoder for strengmanipulasjoner.

2.1. begynner med() Metode

De starte med() metoden tester om en streng starter med et bestemt prefiks. Det kommer tilbake ekte hvis prefikset eksisterer og falsk ellers.

La oss starte med en groovy nedleggelse:

@Test offentlig ugyldig nårCasePrefixIsRemoved_thenReturnTrue () {def trimPrefix = {it.startsWith ('Groovy-')? it.minus ('Groovy-'): it} def actual = trimPrefix ("Groovy-Tutorials at Baeldung") def expected = "Tutorials at Baeldung" assertEquals (forventet, faktisk)} 

Når eksistensen er bekreftet, kan vi også bruke substring () metode for å fjerne den:

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

2.2. startsWithIgnoreCase () Metode

De begynner med() metoden er mellom store og små bokstaver. Så det kreves en manuell innsats for å oppheve virkningen av saken enten ved å bruke toLowerCase () eller toUpperCase () metoder.

Som navnet antyder, er startsWithIgnoreCase () søker i et prefiks uten saksbehandling. Det blir sant hvis et prefiks eksisterer og ellers falskt.

La oss se på hvordan du bruker denne metoden:

@Test offentlig ugyldig nårPrefixIsRemovedWithIgnoreCase_thenReturnTrue () {String prefix = "groovy-" String trimPrefix = "Groovy-Tutorials at Baeldung" def faktisk hvis (trimPrefix.startsWithIgnoreCase (prefix)) {actual = trimPrefix.subs.ix def expected = "Tutorials at Baeldung" assertEquals (forventet, faktisk)} 

2.3. startsWithAny () Metode

Ovennevnte løsninger er nyttige når vi bare må sjekke ett prefiks. Når det gjelder å sjekke flere prefikser, gir Groovy også støtte for å sjekke flere prefikser.

De startsWithAny () metoden sjekker om CharSequence starter med noen spesifiserte prefikser. Når prefikset er bekreftet, kan vi bruke logikk i henhold til kravene:

String trimPrefix = "Groovy-Tutorials at Baeldung" if (trimPrefix.startsWithAny ("Java", "Groovy", "Linux")) {// logikk for å fjerne prefiks} 

3. Bruke Regex

Et vanlig uttrykk er en kraftig måte å matche eller erstatte et mønster på. Groovy har et mønsteroperatør ~ som gir en enkel måte å lage en java.util.regex.Mønster forekomst.

La oss definere et enkelt regulært uttrykk for å fjerne et prefiks:

@Test offentlig ugyldig nårPrefixIsRemovedUsingRegex_thenReturnTrue () {def regex = ~ "^ groovy-" String trimPrefix = "groovy-Tutorials at Baeldung" Streng faktisk = trimPrefix - regex def forventet = "Tutorials at Baeldung" assertEquals Ba ("Tutorials," Tutorials " )} 

Den store og små bokstaver versjonen av ovennevnte regulære uttrykk:

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

Vaktoperatøren ^ vil sørge for at den spesifiserte undergrunnen eksisterer i starten.

3.1. erstatte første () Metode

Ved å bruke vanlige uttrykk sammen med innfødte strenger metoder, kan vi utføre veldig kraftige triks. De erstatte første () metode er en av disse metodene. Den erstatter den første forekomsten som samsvarer med det gitte regulære uttrykket.

La oss fjerne et prefiks ved hjelp av erstatte første () metode:

@Test offentlig ugyldig nårPrefixIsRemovedUsingRlaceFirst_thenReturnTrue () {def regex = ~ "^ groovy" String trimPrefix = "groovyTutorials at Baeldung's groovy page" String actual = trimPrefix.replaceFirst (regex, "") def forventet = "Tutorials forventet, faktisk)} 

3.2. erstatt alle () Metode

Akkurat som erstatte første (), den erstatt alle () godtar også et vanlig uttrykk og gitt erstatning. Den erstatter hvert underlag som samsvarer med de gitte kriteriene. For å fjerne et prefiks, kan vi også bruke denne metoden.

La oss bruke erstatt alle () bare for å erstatte en substring i begynnelsen av strengen:

@Test offentlig ugyldig nårPrefixIsRemovedUsingReplaceAll_thenReturnTrue () {String trimPrefix = "groovyTutorials at Baeldung groovy" String actual = trimPrefix.replaceAll (/ ^ groovy /, "") def expected = "Tutorials at Baeldung groovy" assertE, assertE 

4. Konklusjon

I denne raske opplæringen utforsket vi flere måter å fjerne prefikser fra en streng. For å bekrefte eksistensen av et prefiks så vi hvordan vi gjorde dette for både store og små strenger.

Samtidig har vi sett hvordan vi kan oppdage et prefiks blant mange gitt understreng. Vi så også på flere metoder som kan brukes til å fjerne et underlag. Til slutt diskuterte vi kort rollen til regex for dette formålet.

Som alltid kan alle kodeeksemplene finnes på GitHub.


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