כיצד להסיר קידומת ממיתרים בגרובי

1. הקדמה

במדריך מהיר זה, נלמד כיצד להסיר את הקידומת ממחרוזת ב- Groovy.

ראשית, נסתכל על מה חוּט הצעות כיתה למטרה זו. לאחר מכן, נעבור לביטויים רגילים ונראה כיצד נוכל להשתמש בהם להסרת קידומת.

2. שימוש חוּט שיטות

באופן כללי, Groovy נחשבת לשפה דינמית עבור המערכת האקולוגית של Java. לכן, אנו עדיין יכולים להשתמש בכל Java חוּט שיטת כיתה יחד עם שיטות גרובי חדשות. עם זאת, להסרת הקידומת, עדיין קיים היעדר שיטה פשוטה כמו removePrefix ().

הסרת קידומת ממיתרי גרובי מורכבת משני שלבים: אישור ראשון ואז הסרה. ניתן לבצע את שני השלבים הללו באמצעות StringGroovyMethods מחלקה המציעה שיטות עזר רבות למניפולציות במחרוזות.

2.1. מתחיל עם() שיטה

ה להתחיל עם() שיטת בדיקות אם מחרוזת מתחילה עם קידומת ספציפית. זה חוזר נָכוֹן אם הקידומת קיימת ו שֶׁקֶר אחרת.

נתחיל בסגירה גרובית:

@ מבחן ציבורי בטל כאשר CasePrefixIsRemoved_thenReturnTrue () {def trimPrefix = {it.startsWith ('Groovy-')? it.minus ('Groovy-'): it} def actual = trimPrefix ("Groovy-Tutorials at Baeldung") def expected = "Tutorials at Baeldung" assertEquals (צפוי, ממשי)} 

לאחר אישור הקיום, אנו יכולים גם להשתמש ב- תשתית () שיטה להסרתו:

trimPrefix.substring ('Groovy -'. אורך ()) 

2.2. startsWithIgnoreCase () שיטה

ה מתחיל עם() השיטה תלויה באותיות רישיות. לכן, נדרש מאמץ ידני לשלול את השפעת המקרה על ידי יישום ה- toLowerCase () אוֹ toUpperCase () שיטות.

כפי שהשם מרמז, startsWithIgnoreCase () מחפש קידומת ללא שיקול מקרה. זה מחזיר אמת אם קיימת קידומת ושקר אחרת.

בואו נבדוק כיצד להשתמש בשיטה זו:

@Test ציבורי בטל כאשרPrefixIsRemovedWithIgnoreCase_thenReturnTrue () {קידומת String = "groovy-" String trimPrefix = "Groovy-Tutorials at Baeldung" def בפועל if (trimPrefix.startsWithIgnoreCase (קידומת)) {actual = trimPrefix)} def expected = "הדרכות בבאלדונג" assertEquals (צפוי, בפועל)} 

2.3. startsWithAny () שיטה

הפתרונות לעיל שימושיים כאשר עלינו לבדוק קידומת אחת בלבד. בכל הנוגע לבדיקת קידומות מרובות, Groovy מספק תמיכה גם בבדיקת קידומות מרובות.

ה startsWithAny () השיטה בודקת אם CharSequence מתחיל עם קידומות שצוינו. לאחר אישור הקידומת, אנו יכולים להחיל לוגיקה בהתאם לדרישות:

מחרוזת trimPrefix = "Groovy-Tutorials at Baeldung" if (trimPrefix.startsWithAny ("Java", "Groovy", "Linux")) {// לוגיקה להסרת קידומת} 

3. שימוש ב- Regex

ביטוי רגולרי הוא דרך עוצמתית להתאים או להחליף תבנית. ל- Groovy יש אופרטור תבניות ~ המספק דרך פשוטה ליצור a java.util.regex.Pattern למשל.

בואו נגדיר ביטוי רגולרי פשוט להסרת קידומת:

@Test ציבורי בטל כאשר PrefixIsRemovedUsingRegex_thenReturnTrue () {def regex = ~ "^ groovy-" String trimPrefix = "groovy-Tutorials at Baeldung" String actual = trimPrefix - regex def expected = "Tutorials at Baeldung" assertEquals Ba, "Tutorials" )} 

הגרסה חסרת המקרה של הביטוי הרגולרי לעיל:

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

מפעיל המטפל ^ יוודא שהמצע שצוין קיים בהתחלה.

3.1. החלף ראשון () שיטה

באמצעות ביטויים רגולריים יחד עם שיטות מיתרים מקוריות, אנו יכולים לבצע טריקים חזקים מאוד. ה החלף ראשון () שיטה היא אחת מהשיטות הללו. זה מחליף את ההתרחשות הראשונה שתואמת את הביטוי הרגולרי הנתון.

בואו נסיר קידומת באמצעות ה- החלף ראשון () שיטה:

@ מבחן פומבי בטל כאשר PrefixIsRemovedUsingRlaceFirst_thenReturnTrue () {def regex = ~ "^ groovy" String trimPrefix = "groovyTutorials at the groovy page of Baeldung" String actual = trimPrefix.replaceFirst (regex, "") def tolded = "tutorials" צפוי, ממשי)} 

3.2. החלף הכל() שיטה

בדיוק כמו החלף ראשון (), ה החלף הכל() מקבל גם ביטוי קבוע והחלפה נתונה. הוא מחליף כל תשתית שתואמת את הקריטריונים הנתונים. כדי להסיר קידומת, אנו יכולים להשתמש גם בשיטה זו.

בואו נשתמש החלף הכל() כדי להחליף מזרק בתחילת המחרוזת בלבד:

@Test ציבורי בטל כאשרPrefixIsRemovedUsingRlaceAll_thenReturnTrue () {String trimPrefix = "groovyTutorials at Baeldung groovy" String actual = trimPrefix.replaceAll (/ ^ groovy /, "") def צפוי = "הדרכות בטענה של Baeldung groovy (assertE) צפוי, assertE 

4. מסקנה

במדריך מהיר זה בדקנו מספר דרכים להסרת קידומות ממחרוזת. כדי לאשר את קיומה של קידומת, ראינו כיצד לעשות זאת הן עבור מחרוזות רישיות והן קטנות.

יחד עם זאת, ראינו כיצד לזהות קידומת בקרב הרבה משטחים שסופקו. בדקנו גם מספר שיטות שניתן להשתמש בהן להסרת מצע. לבסוף, דנו בקצרה בתפקיד regex למטרה זו.

כמו תמיד, ניתן למצוא את כל דוגמאות הקוד ב- GitHub.


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