Hogyan lehet eltávolítani az előtagot a karakterláncokból a Groovy-ban

1. Bemutatkozás

Ebben a gyors bemutatóban megtudhatjuk, hogyan távolíthatjuk el az előtagot a Groovy karakterláncából.

Először megnézzük, mi a Húr osztályú ajánlatok erre a célra. Ezután áttérünk a reguláris kifejezésekre, és megnézzük, hogyan használhatjuk őket az előtag eltávolítására.

2. Használata Húr Mód

Általában a Groovyt dinamikus nyelvnek tekintik a Java ökoszisztéma számára. Ezért továbbra is használhatunk minden Java-t Húr osztályos módszer az új Groovy-kkal együtt. Az előtag eltávolításához azonban még mindig nincs olyan egyszerű módszer, mint a removePrefix ().

Az előtag eltávolítása a Groovy karakterláncokból két lépésből áll: először megerősítésből, majd eltávolításból. Mindkét lépést a StringGroovyMethods osztály, amely számos hasznos módszert kínál a karakterlánc-manipulációkhoz.

2.1. startsWith () Módszer

A kezdeni valamivel() A módszer teszteli, hogy egy karakterlánc egy adott előtaggal kezdődik-e. Visszatér igaz ha az előtag létezik és hamis másképp.

Kezdjük egy kemény lezárással:

@Test public void whenCasePrefixIsRemoved_thenReturnTrue () {def trimPrefix = {it.startsWith ('Groovy-')? it.minus ('Groovy-'): it} def actual = trimPrefix ("Groovy-Tutorials at Baeldung") def várható = "Tutorials at Baeldung" assertEquals (várható, aktuális)} 

Ha a létezés megerõsödött, akkor használhatjuk a szubsztring () módszer annak eltávolítására:

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

2.2. startsWithIgnoreCase () Módszer

A startsWith () módszer megkülönbözteti a kis- és nagybetűket. Tehát kézi erőfeszítésre van szükség az eset hatásának tagadásához akár a toLowerCase () vagy toUpperCase () mód.

Ahogy a neve is mutatja, a startsWithIgnoreCase () keres egy előtagot esetkérdés nélkül. Igaz, ha előtag létezik, másként hamis.

Nézzük meg, hogyan kell használni ezt a módszert:

@Test public void whenPrefixIsRemovedWithIgnoreCase_thenReturnTrue () {String prefix = "groovy-" String trimPrefix = "Groovy-Tutorials at Baeldung" def fact if def várható = "Oktatóanyagok a Baeldungnál" assertEquals (várható, tényleges)} 

2.3. startsWithAny () Módszer

A fenti megoldások akkor hasznosak, ha csak egy előtagot kell ellenőriznünk. Ha több előtagot kell ellenőrizni, a Groovy támogatást nyújt több előtag ellenőrzéséhez is.

A startsWithAny () módszer ellenőrzi, hogy a CharSequence bármely megadott előtaggal kezdődik. Miután az előtag megerősítést nyert, a követelményeknek megfelelően alkalmazhatjuk a logikát:

String trimPrefix = "Groovy-Tutorials at Baeldung" if (trimPrefix.startsWithAny ("Java", "Groovy", "Linux")) {// logika az előtag eltávolításához} 

3. A Regex használata

A reguláris kifejezés hatékony módja a minta illesztésének vagy cseréjének. A Groovy rendelkezik egy minta operátorral ~, amely egyszerű módot kínál a java.util.regex.Pattern példa.

Adjunk meg egy egyszerű reguláris kifejezést az előtag eltávolításához:

@Test public void whenPrefixIsRemovedUsingRegex_thenReturnTrue () {def regex = ~ "^ groovy-" String trimPrefix = "groovy-Tutorials at Baeldung" String actual = trimPrefix - regex def várható = "Oktatóanyagok a Baeldung" "Tutorials" tényleges ", AssertEquals ( )} 

A fenti reguláris kifejezés kis- és nagybetűk nélküli változata:

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

A caret operátor ^ meg fogja győződni arról, hogy a megadott részlánc létezik-e az elején.

3.1. ReplaceFirst () Módszer

A reguláris kifejezések és a natív karakterlánc-módszerek segítségével nagyon hatékony trükköket hajthatunk végre. A ReplaceFirst () módszer ezen módszerek egyike. Helyettesíti az első előfordulást, amely megfelel az adott reguláris kifejezésnek.

Távolítsuk el az előtagot a ReplaceFirst () módszer:

@Test public void whenPrefixIsRemovedUsingReplaceFirst_thenReturnTrue () {def regex = ~ "^ groovy" String trimPrefix = "groovyTutorials at Baeldung's groovy page" String actual = trimPrefix.replaceFirst (regex "" = ") def várható = reg" (regex "") "def várható = =" várható, tényleges)} 

3.2. csereAll () Módszer

Mint ReplaceFirst (), a csereAll () szintén elfogad egy reguláris kifejezést és adott helyettesítést. Helyettesít minden alsztringet, amely megfelel a megadott feltételeknek. Az előtag eltávolításához használhatjuk ezt a módszert is.

Használjuk csereAll () alszöveg cseréje csak a karakterlánc elején:

@Test public void whenPrefixIsRemovedUsingReplaceAll_thenReturnTrue () {String trimPrefix = "groovyTutorials at Baeldung groovy" String actual = trimPrefix.replaceAll (/ ^ groovy /, "") def várható = "Tutorials at Baertung 

4. Következtetés

Ebben a gyors bemutatóban számos módszert tártunk fel az előtagok eltávolítására egy karakterláncról. Az előtag meglétének megerősítéséhez láttuk, hogyan lehet ezt megtenni mind a nagy, mind a kisbetűs karakterláncok esetében.

Ugyanakkor láttuk, hogyan lehet felismerni az előtagot a sok mellékelt alsor között. Többféle módszert is megvizsgáltunk, amelyek felhasználhatók egy részlánc eltávolítására. Végül röviden megvitattuk a regex szerepét e célból.

Mint mindig, az összes kódpélda megtalálható a GitHubon.