Sådan fjernes et præfiks fra strengene i Groovy

1. Introduktion

I denne hurtige vejledning lærer vi, hvordan du fjerner præfikset fra en streng i Groovy.

Først skal vi se på, hvad Snor klasse tilbud til dette formål. Derefter går vi videre til regulære udtryk og ser, hvordan vi kan bruge dem til at fjerne et præfiks.

2. Brug Snor Metoder

Generelt betragtes Groovy som et dynamisk sprog for Java-økosystemet. Derfor kan vi stadig bruge alle Java Snor klassemetode sammen med nye Groovy. For fjernelsen af ​​præfikset er der dog stadig mangel på en ligetil metode som removePrefix ().

Fjernelse af et præfiks fra Groovy-strenge består af to trin: først bekræftelse og derefter fjernelse. Begge disse trin kan udføres ved hjælp af StringGroovyMethods klasse, der tilbyder mange hjælpemetoder til strengmanipulationer.

2.1. starter med () Metode

Det start med() metode tester, hvis en streng starter med et specifikt præfiks. Det vender tilbage rigtigt hvis præfikset findes, og falsk Ellers.

Lad os starte med en groovy lukning:

@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 bekræftet, kan vi også bruge understreng () metode til at fjerne det:

trimPrefix.substring ('Groovy -'. længde ()) 

2.2. startsWithIgnoreCase () Metode

Det starter med () metoden skelner mellem store og små bogstaver. Så der kræves en manuel indsats for at ophæve virkningen af ​​sagen enten ved at anvende toLowerCase () eller toUpperCase () metoder.

Som navnet antyder, er startsWithIgnoreCase () søger i et præfiks uden sagsbehandling. Det returnerer sandt, hvis der findes et præfiks og ellers falsk.

Lad os se på, hvordan du bruger denne metode:

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

2.3. startsWithAny () Metode

Ovenstående løsninger er nyttige, når vi kun skal kontrollere et præfiks. Når det kommer til at kontrollere flere præfikser, giver Groovy også support til at kontrollere flere præfikser.

Det startsWithAny () metode kontrollerer, om CharSequence starter med et hvilket som helst specificeret præfiks. Når præfikset er bekræftet, kan vi anvende logik i henhold til kravene:

String trimPrefix = "Groovy-Tutorials at Baeldung" if (trimPrefix.startsWithAny ("Java", "Groovy", "Linux")) {// logik for at fjerne præfiks} 

3. Brug af Regex

Et regulært udtryk er en stærk måde at matche eller erstatte et mønster på. Groovy har en mønsteroperator ~, der giver en enkel måde at oprette en java.util.regex.Mønster eksempel.

Lad os definere et simpelt regulært udtryk for at fjerne et præfiks:

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

Den sagsfølsomme version af ovenstående regulære udtryk:

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

Plejeoperatøren ^ sørger for, at den angivne understreng findes i starten.

3.1. erstatte første () Metode

Ved hjælp af regulære udtryk sammen med native stringsmetoder kan vi udføre meget kraftige tricks. Det erstatte første () metode er en af ​​disse metoder. Det erstatter den første forekomst, der matcher det givne regulære udtryk.

Lad os fjerne et præfiks ved hjælp af 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. erstatteAlle () Metode

Ligesom erstatte første (), det erstatteAlle () accepterer også et regulært udtryk og givet erstatning. Det erstatter hvert underlag, der matcher de givne kriterier. For at fjerne et præfiks kan vi også bruge denne metode.

Lad os bruge erstatteAlle () for kun at udskifte en substring i starten af ​​strengen:

@Test offentligt ugyldigt nårPrefixIsRemovedUsingRlaceAll_thenReturnTrue () {String trimPrefix = "groovyTutorials at Baeldung groovy" String actual = trimPrefix.replaceAll (/ ^ groovy /, "") def forventet = "Tutorials at Baeldung groovy" assertE, assertE 

4. Konklusion

I denne hurtige vejledning undersøgte vi flere måder at fjerne præfikser fra en streng. For at bekræfte eksistensen af ​​et præfiks så vi, hvordan man gør dette for både store og små strenge.

På samme tid har vi set, hvordan man finder et præfiks blandt mange leverede understrenge. Vi kiggede også på flere metoder, der kan bruges til at fjerne en substring. Endelig diskuterede vi kort regex's rolle til dette formål.

Som altid kan alle kodeeksempler findes på GitHub.


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