Ako odstrániť predponu z reťazcov v Groovy

1. Úvod

V tomto rýchlom výučbe sa naučíme, ako odstrániť predponu z reťazca v aplikácii Groovy.

Najprv sa pozrieme na to, čo String triedy ponúka na tento účel. Potom prejdeme k regulárnym výrazom a uvidíme, ako pomocou nich odstránime predponu.

2. Pomocou String Metódy

Groovy sa všeobecne považuje za dynamický jazyk pre ekosystém Java. Preto môžeme stále používať každú Javu String triedna metóda spolu s novými Groovy. Pokiaľ však ide o odstránenie predpony, stále chýba jednoduchá metóda ako removePrefix ().

Odstránenie predvoľby z reťazcov Groovy pozostáva z dvoch krokov: najprv potvrdenie a potom odstránenie. Oba tieto kroky je možné vykonať pomocou StringGroovyMethods triedy, ktorá ponúka mnoho užitočných metód pre manipuláciu s reťazcami.

2.1. začína s() Metóda

The startWith () metóda testuje, či reťazec začína konkrétnou predponou. Vracia sa to pravda ak existuje predpona a nepravdivé inak.

Začnime s groovy uzáverom:

@Test public void whenCasePrefixIsRemoved_thenReturnTrue () {def trimPrefix = {it.startsWith ('Groovy-')? it.minus ('Groovy-'): it} def actual = trimPrefix ("Groovy-Tutoriály v Baeldungu") def expect = "Tutoriály v Baeldungu" assertEquals (očakávaný, skutočný)} 

Po potvrdení existencie môžeme tiež použiť podreťazec () spôsob jeho odstránenia:

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

2.2. startWithIgnoreCase () Metóda

The začína s() metóda rozlišuje veľké a malé písmená. Je teda potrebné vynaložiť manuálne úsilie na vyvrátenie účinku prípadu buď použitím toLowerCase () alebo toUpperCase () metódy.

Ako už názov napovedá, startWithIgnoreCase () prehľadá predponu bez zváženia prípadu. Vráti hodnotu true, ak existuje predpona, inak hodnotu false.

Pozrime sa, ako použiť túto metódu:

@Test public void whenPrefixIsRemovedWithIgnoreCase_thenReturnTrue () {String prefix = "groovy-" String trimPrefix = "Groovy-Tutorials at Baeldung" def actual if (trimPrefix.startsWithIgnoreCase (prefix)) {actual = trimPrefix.subring def expect = "Návody na Baeldungu" assertEquals (očakávané, skutočné)} 

2.3. startWithAny () Metóda

Vyššie uvedené riešenia sú užitočné, keď musíme skontrolovať iba jednu predponu. Pokiaľ ide o kontrolu viacerých predpôn, Groovy poskytuje podporu aj pri kontrole viacerých predpôn.

The startWithAny () metóda kontroluje, či CharSequence začína ľubovoľnými zadanými predponami. Po potvrdení predpony môžeme použiť logiku podľa požiadaviek:

String trimPrefix = "Groovy-Tutorials at Baeldung" if (trimPrefix.startsWithAny ("Java", "Groovy", "Linux")) {// logika na odstránenie prefixu} 

3. Používanie Regexu

Regulárny výraz je účinný spôsob, ako spojiť alebo nahradiť vzor. Groovy má operátor vzorov ~, ktorý poskytuje jednoduchý spôsob vytvorenia a java.util.regex.Vzor inštancia.

Definujeme jednoduchý regulárny výraz na odstránenie predpony:

@Test public void whenPrefixIsRemovedUsingRegex_thenReturnTrue () {def regex = ~ "^ groovy-" String trimPrefix = "groovy-Tutorials at Baeldung" String actual = trimPrefix - regex def expect = "Tutoriály v Baeldung" assertEquals ("Tutoriály v Baeldung" )} 

Verzia vyššie uvedeného regulárneho výrazu bez rozlišovania malých a veľkých písmen:

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

Operátor kurzoru ^ sa uistí, že zadaný podreťazec existuje na začiatku.

3.1. replaceFirst () Metóda

Pomocou regulárnych výrazov spolu s metódami natívnych reťazcov môžeme vykonávať veľmi výkonné triky. The replaceFirst () metóda je jednou z týchto metód. Nahrádza prvý výskyt, ktorý sa zhoduje s daným regulárnym výrazom.

Odstráňte predponu pomocou replaceFirst () metóda:

@Test public void whenPrefixIsRemovedUsingReplaceFirst_thenReturnTrue () {def regex = ~ "^ groovy" String trimPrefix = "groovyTutorials na Baeldungovej groovy stránke" String actual = trimPrefix.replaceFirst (regex, "") def očakáva = "Tutorial" očakávaný, skutočný)} 

3.2. nahradiť všetko() Metóda

Rovnako ako replaceFirst (), nahradiť všetko() akceptuje aj regulárny výraz a uvedenú náhradu. Nahrádza každý podreťazec, ktorý spĺňa dané kritériá. Na odstránenie predpony môžeme použiť aj túto metódu.

Poďme použiť nahradiť všetko() nahradiť podreťazec iba na začiatku reťazca:

@Test public void whenPrefixIsRemovedUsingReplaceAll_thenReturnTrue () {String trimPrefix = "groovyTutorials at Baeldung groovy" String actual = trimPrefix.replaceAll (/ ^ groovy /, "") def expect = "Očakávané návody na Baeldung groovy" assertEquals) 

4. Záver

V tomto rýchlom výučbe sme preskúmali niekoľko spôsobov, ako odstrániť predponu z reťazca. Aby sme potvrdili existenciu predpony, videli sme, ako to urobiť pre veľké aj malé reťazce.

Zároveň sme videli, ako zistiť predponu medzi mnohými poskytnutými podreťazcami. Pozreli sme sa tiež na niekoľko metód, ktoré možno použiť na odstránenie podreťazca. Na záver sme v krátkosti diskutovali o úlohe regexu na tento účel.

Ako vždy, všetky príklady kódu nájdete na GitHub.


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