{"id":77727,"date":"2020-09-18T12:33:12","date_gmt":"2020-09-18T12:33:12","guid":{"rendered":"https:\/\/www.baeldung.com\/?p=87256"},"modified":"2020-09-18T12:33:12","modified_gmt":"2020-09-18T12:33:12","slug":"how-to-remove-a-prefix-from-strings-in-groovy","status":"publish","type":"post","link":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/2020\/09\/18\/how-to-remove-a-prefix-from-strings-in-groovy\/","title":{"rendered":"How to Remove a Prefix From Strings in Groovy"},"content":{"rendered":"<p class=\"syndicated-attribution\"><meta name= \\\"keywords \\\" content= \\\"\u96fb\u5b50\u8a08\u7b97\u6a5f, \u6559\u80b2, IT \u96fb\u8166\u73ed,\u96fb\u8166\u88dc\u7fd2\uff0c \u96fb\u8166\u73ed\uff0c \u5bb6\u6559\uff0c \u79c1\u4eba\u8001\u5e2b\uff0c \u8cc7\u8a0a\u6280\u8853\uff0c \u7a0b\u5e8f\u8a2d\u8a08\uff0c \u96fb\u5b50\u8a08\u7b97\u6a5f\uff0c \u904a\u6232\uff0c \u860b\u679c\uff0c \u96fb\u5f71\uff0c \u8a08\u7b97\u6a5f\uff0c\u7de8\u78bc\uff0c Java\uff0c C\/C++\uff0c JavaScript\uff0c PHP\uff0c HTML\uff0c CSS\uff0c MySQL\uff0c mobile\uff0c Android\uff0c \u52d5\u6f2b\uff0c Python\uff0c teacher\uff0c \u88dc\u7fd2\uff0c \u96fb\u8166\u88dc\u7fd2 \u8cc7\u8a0a, \u7535\u5b50\u8ba1\u7b97\u673a, IT ,Game, apple, movie, Computer,student,Java,\u6559\u80b2, ,\u5b66\u751f, \u5b66\u4e60, learn, \u6559\u5b66,  Android, apple,anime, animation, \u4fe1\u606f\u6280\u672f, \u7a0b\u5e8f\u8bbe\u8ba1, \u79fb\u52a8\u7535\u8bdd, \u8cc7\u8a0a\u79d1\u6280,Game, Jeu, Juego,Call Of Duty ,\u4f7f\u547d\u53ec\u559a , \u6e38\u620f, \u7535\u5b50\u6e38\u620f,, \u591a\u4eba\u7535\u5b50\u6e38\u620f, \u7f51\u7edc\u6e38\u620f\uff0conline\uff0conline game, \u624b\u673a\u6e38\u620f, mobile \\\"><\/p>\n<h2 data-id=\"introduction\">1. Introduction<\/h2>\n<div class=\"bd-anchor\" id=\"introduction\"><\/div>\n<p>In this quick tutorial, we&#8217;ll learn how to remove the prefix from a string in <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/www.baeldung.com\/groovy-language\">Groovy<\/a>.<\/p>\n<p>First, we&#8217;ll look at what the <em>String<\/em> class offers for this purpose. After that, we&#8217;ll move on to regular expressions and see how we can use them to remove a prefix.<\/p>\n<h2 data-id=\"using-string-methods\">2. Using <em>String<\/em> Methods<\/h2>\n<div class=\"bd-anchor\" id=\"using-string-methods\"><\/div>\n<p>Generally, <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/www.baeldung.com\/groovy-language\">Groovy<\/a> is considered a dynamic language for the Java ecosystem. Therefore, we can still use every Java <em>String<\/em> class method along with new Groovy ones. However, for the removal of the prefix, there is still an absence of a straightforward method like <em>removePrefix()<\/em>.<\/p>\n<p><strong>Removing of a prefix from Groovy strings consists of two steps: first confirmation and then removal<\/strong>. Both of these steps can be performed using the <em>StringGroovyMethods<\/em> class that offers many utility methods for string manipulations.<\/p>\n<h3 data-id=\"1-startswith-method\">2.1. <em>startsWith()<\/em> Method<\/h3>\n<div class=\"bd-anchor\" id=\"1-startswith-method\"><\/div>\n<p>The <em>startWith()<\/em> method tests if a string starts with a specific prefix. It returns <em>true<\/em> if the prefix exists and <em>false<\/em> otherwise.<\/p>\n<p>Let&#8217;s start with a <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/www.baeldung.com\/groovy-closures\">groovy closure<\/a>:<\/p>\n<pre><code class=\"language-groovy\">@Test \r\npublic void whenCasePrefixIsRemoved_thenReturnTrue(){\r\n    def trimPrefix = {\r\n        it.startsWith('Groovy-') ? it.minus('Groovy-') : it \r\n    }\r\n    def actual = trimPrefix(\"Groovy-Tutorials at Baeldung\")\r\n    def expected = \"Tutorials at Baeldung\"\r\n    assertEquals(expected, actual)\r\n}\r\n<\/code><\/pre>\n<p>Once existence is confirmed, then we can also use the <em>substring()<\/em> method to remove it:<\/p>\n<pre><code class=\"language-groovy\">trimPrefix.substring('Groovy-'.length())\r\n<\/code><\/pre>\n<h3 data-id=\"2-startswithignorecasemethod\">2.2. <em>startsWithIgnoreCase()<\/em>\u00a0Method<\/h3>\n<div class=\"bd-anchor\" id=\"2-startswithignorecasemethod\"><\/div>\n<p><strong>The <em>startsWith()<\/em> method is case-sensitive<\/strong>. So, a manual effort is required to negate the effect of the case either by applying the <em>toLowerCase()<\/em> or <em>toUpperCase() <\/em>methods.<\/p>\n<p>As the name suggests, the <em>startsWithIgnoreCase() <\/em>searches a prefix without case consideration. It returns true if a prefix exists and false otherwise.<\/p>\n<p>Let&#8217;s look at how to use this method:<\/p>\n<pre><code class=\"language-groovy\">@Test\r\npublic void whenPrefixIsRemovedWithIgnoreCase_thenReturnTrue() {\r\n    String prefix = \"groovy-\"\r\n    String trimPrefix = \"Groovy-Tutorials at Baeldung\"\r\n    def actual\r\n    if(trimPrefix.startsWithIgnoreCase(prefix)) {\r\n        actual = trimPrefix.substring(prefix.length())\r\n    }\r\n    def expected = \"Tutorials at Baeldung\"\r\n    assertEquals(expected, actual)\r\n}\r\n<\/code><\/pre>\n<h3 data-id=\"3-startswithanymethod\">2.3. <em>startsWithAny()<\/em>\u00a0Method<\/h3>\n<div class=\"bd-anchor\" id=\"3-startswithanymethod\"><\/div>\n<p>The above solutions are useful when we have to check only one prefix. When it comes to checking multiple prefixes, Groovy also provides support to check multiple prefixes.<\/p>\n<p><strong>The <em>startsWithAny()<\/em> method checks if the <em>CharSequence<\/em> starts with any specified prefixes. <\/strong>Once the prefix is confirmed, we can apply logic according to requirements:<\/p>\n<pre><code class=\"language-groovy\">String trimPrefix = \"Groovy-Tutorials at Baeldung\"\r\nif (trimPrefix.startsWithAny(\"Java\", \"Groovy\", \"Linux\")) {\r\n    \/\/ logic to remove prefix\r\n}\r\n<\/code><\/pre>\n<h2 data-id=\"using-regex\">3. Using Regex<\/h2>\n<div class=\"bd-anchor\" id=\"using-regex\"><\/div>\n<p>A regular expression is a powerful way to match or replace a pattern. Groovy has a <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/www.baeldung.com\/groovy-pattern-matching\">pattern operator ~<\/a> that provides a simple way to create a <em>java.util.regex.Pattern <\/em>instance.<\/p>\n<p>Let&#8217;s define a simple regular expression to remove a prefix:<\/p>\n<pre><code class=\"language-groovy\">@Test\r\npublic void whenPrefixIsRemovedUsingRegex_thenReturnTrue() {\r\n    def regex = ~\"^groovy-\"\r\n    String trimPrefix = \"groovy-Tutorials at Baeldung\"\r\n    String actual = trimPrefix - regex\r\n    def expected = \"Tutorials at Baeldung\"\r\n    assertEquals(\"Tutorials at Baeldung\", actual)\r\n}\r\n<\/code><\/pre>\n<p>The case-insensitive version of the above regular expression:<\/p>\n<pre><code class=\"language-groovy\">def regex = ~\"^([Gg])roovy-\"\r\n<\/code><\/pre>\n<p>The caret operator ^ will make sure that the specified substring exists at the start.<\/p>\n<h3 data-id=\"1-replacefirst-method\">3.1. <em>replaceFirst()<\/em> Method<\/h3>\n<div class=\"bd-anchor\" id=\"1-replacefirst-method\"><\/div>\n<p>Using regular expressions along with native strings methods, we can perform very powerful tricks. The <em>replaceFirst()<\/em> method is one of these methods. It replaces the first occurrence that matches the given regular expression.<\/p>\n<p>Let&#8217;s remove a prefix using the <em>replaceFirst()<\/em> method:<\/p>\n<pre><code class=\"language-groovy\">@Test\r\npublic void whenPrefixIsRemovedUsingReplaceFirst_thenReturnTrue() {\r\n    def regex = ~\"^groovy\"\r\n    String trimPrefix = \"groovyTutorials at Baeldung's groovy page\"\r\n    String actual = trimPrefix.replaceFirst(regex, \"\")\r\n    def expected = \"Tutorials at Baeldung's groovy page\"\r\n    assertEquals(expected, actual)\r\n}\r\n<\/code><\/pre>\n<h3 data-id=\"2-replaceall-method\">3.2. <em>replaceAll()<\/em> Method<\/h3>\n<div class=\"bd-anchor\" id=\"2-replaceall-method\"><\/div>\n<p>Just like <em>replaceFirst()<\/em>, the<em> replaceAll() <\/em>also accepts a regular expression and given replacement.<strong> It replaces each substring that matches the given criteria<\/strong>. To remove a prefix, we can use this method too.<\/p>\n<p>Let&#8217;s use <em>replaceAll()<\/em> to replace a substring at the start of the string only:<\/p>\n<pre><code class=\"language-groovy\">@Test\r\npublic void whenPrefixIsRemovedUsingReplaceAll_thenReturnTrue() {\r\n    String trimPrefix = \"groovyTutorials at Baeldung groovy\"\r\n    String actual = trimPrefix.replaceAll(\/^groovy\/, \"\")\r\n    def expected = \"Tutorials at Baeldung groovy\"\r\n    assertEquals(expected, actual)\r\n}\r\n<\/code><\/pre>\n<h2 data-id=\"conclusion\">4. Conclusion<\/h2>\n<div class=\"bd-anchor\" id=\"conclusion\"><\/div>\n<p>In this quick tutorial, we explored several ways to remove prefixes from a string. To confirm the existence of a prefix, we saw how to do this for both uppercase and lowercase strings.<\/p>\n<p>At the same time, we&#8217;ve seen how to detect a prefix among many provided substrings. We also looked at multiple methods that can be used to remove a substring. Lastly, we briefly discussed the role of regex for this purpose.<\/p>\n<p>As always, all the code examples can be found <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/github.com\/eugenp\/tutorials\/tree\/master\/core-groovy-strings\">over on GitHub<\/a>.<\/p>\n<p>The post <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/www.baeldung.com\/groovy-remove-string-prefix\/\" >How to Remove a Prefix From Strings in Groovy<\/a> first appeared on <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/www.baeldung.com\/\" >Baeldung<\/a>.<\/p>\n<p><Img align=\"left\" border=\"0\" height=\"1\" width=\"1\" alt=\"\" style=\"border:0;float:left;margin:0;padding:0;width:1px!important;height:1px!important;\" hspace=\"0\" src=\"https:\/\/feeds.feedblitz.com\/~\/i\/635702838\/0\/baeldung\"><\/p>\n<div style=\"clear:both;padding-top:0.2em;\"><a title=\"Like on Facebook\" href=\"https:\/\/feeds.feedblitz.com\/_\/28\/635702838\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/fblike20.png\" style=\"border:0;margin:0;padding:0;\"><\/a>&#160;<a title=\"Share on Google+\" href=\"https:\/\/feeds.feedblitz.com\/_\/30\/635702838\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/googleplus20.png\" style=\"border:0;margin:0;padding:0;\"><\/a>&#160;<a title=\"Pin it!\" href=\"https:\/\/feeds.feedblitz.com\/_\/29\/635702838\/baeldung,\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/pinterest20.png\" style=\"border:0;margin:0;padding:0;\"><\/a>&#160;<a title=\"Tweet This\" href=\"https:\/\/feeds.feedblitz.com\/_\/24\/635702838\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/twitter20.png\" style=\"border:0;margin:0;padding:0;\"><\/a>&#160;<a title=\"Subscribe by email\" href=\"https:\/\/feeds.feedblitz.com\/_\/19\/635702838\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/email20.png\" style=\"border:0;margin:0;padding:0;\"><\/a>&#160;<a title=\"Subscribe by RSS\" href=\"https:\/\/feeds.feedblitz.com\/_\/20\/635702838\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/rss20.png\" style=\"border:0;margin:0;padding:0;\"><\/a>&#160;<a rel=\"NOFOLLOW\" title=\"View Comments\" href=\"https:\/\/www.baeldung.com\/groovy-remove-string-prefix#respond\"><img decoding=\"async\" height=\"20\" style=\"border:0;margin:0;padding:0;\" src=\"https:\/\/assets.feedblitz.com\/i\/comments20.png\"><\/a>&#160;<a title=\"Follow Comments via RSS\" href=\"https:\/\/www.baeldung.com\/groovy-remove-string-prefix\/feed\/\"><img decoding=\"async\" height=\"20\" style=\"border:0;margin:0;padding:0;\" src=\"https:\/\/assets.feedblitz.com\/i\/commentsrss20.png\"><\/a>&#160;<\/div>\n\n<p class=\"syndicated-attribution\"><figure class= \\\"wp-block-image alignnone \\\"><img src= \\\"http:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-content\/uploads\/2016\/05\/logo2-2.png\\\" alt=\\\"IT\u96fb\u8166\u88dc\u7fd2 java\u88dc\u7fd2 \u70ba\u5927\u5bb6\u914d\u5c0d\u96fb\u8166\u88dc\u7fd2,IT freelance, \u79c1\u4eba\u8001\u5e2b, PHP\u88dc\u7fd2,CSS\u88dc\u7fd2,XML,Java\u88dc\u7fd2,MySQL\u88dc\u7fd2,graphic design\u88dc\u7fd2,\u4e2d\u5c0f\u5b78ICT\u88dc\u7fd2,\u4e00\u5c0d\u4e00\u79c1\u4eba\u88dc\u7fd2\u548cFreelance\u81ea\u7531\u5de5\u4f5c\u914d\u5c0d\u3002\\\"\/><figcaption>\u7acb\u523b\u8a3b\u518a\u53ca\u5831\u540d\u96fb\u8166\u88dc\u7fd2\u8ab2\u7a0b\u5427!<\/figcaption><\/figure>\r\n<\/br>Find A Teacher Form:\r\n<\/br>https:\/\/docs.google.com\/forms\/d\/1vREBnX5n262umf4wU5U2pyTwvk9O-JrAgblA-wH9GFQ\/viewform?edit_requested=true#responses\r\n<\/br><\/br>Email:\r\n<\/br>public1989two@gmail.com<br><br><br><br><br><br><br>\r\n<a href=www.itsec.hk style=color:#FFFFFF;>www.itsec.hk<\/a><br>\r\n<a href=\\\"www.itsec.vip\\\" style=color:#FFFFFF;>www.itsec.vip<\/a><br>\r\n<a href=\\\"www.itseceu.uk\\\" style=color:#FFFFFF;>www.itseceu.uk<\/a><br><\/p>","protected":false},"excerpt":{"rendered":"<div class=\"mh-excerpt\"><p>Learn how to remove the prefix from a string using Groovy.<\/p>\n<p>The post <a rel=\"NOFOLLOW noopener noreferrer\" href=\"https:\/\/feeds.feedblitz.com\/~\/635702838\/0\/baeldung~How-to-Remove-a-Prefix-From-Strings-in-Groovy\/\" target=\"_blank\">How to Remove a Prefix From Strings in Groovy<\/a> first appeared on <a rel=\"NOFOLLOW noopener noreferrer\" href=\"https:\/\/www.baeldung.com\/\" target=\"_blank\">Baeldung<\/a>.<\/p>\n<div><a title=\"Like on Facebook\" href=\"https:\/\/feeds.feedblitz.com\/_\/28\/635702838\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/fblike20.png\"><\/a>&nbsp;<a title=\"Share on Google+\" href=\"https:\/\/feeds.feedblitz.com\/_\/30\/635702838\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/googleplus20.png\"><\/a>&nbsp;<a title=\"Pin it!\" href=\"https:\/\/feeds.feedblitz.com\/_\/29\/635702838\/baeldung,\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/pinterest20.png\"><\/a>&nbsp;<a title=\"Tweet This\" href=\"https:\/\/feeds.feedblitz.com\/_\/24\/635702838\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/twitter20.png\"><\/a>&nbsp;<a title=\"Subscribe by email\" href=\"https:\/\/feeds.feedblitz.com\/_\/19\/635702838\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/email20.png\"><\/a>&nbsp;<a title=\"Subscribe by RSS\" href=\"https:\/\/feeds.feedblitz.com\/_\/20\/635702838\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/rss20.png\"><\/a>&nbsp;<a rel=\"NOFOLLOW\" title=\"View Comments\" href=\"https:\/\/www.baeldung.com\/groovy-remove-string-prefix#respond\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/comments20.png\"><\/a>&nbsp;<a title=\"Follow Comments via RSS\" href=\"https:\/\/www.baeldung.com\/groovy-remove-string-prefix\/feed\/\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/commentsrss20.png\"><\/a>&nbsp;<\/div>\n<\/div>","protected":false},"author":214,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"slim_seo":{"title":"How to Remove a Prefix From Strings in Groovy - ITTeacherITFreelance.hk","description":"Learn how to remove the prefix from a string using Groovy. The post How to Remove a Prefix From Strings in Groovy first appeared on Baeldung . &nbsp; &nbsp; &nb"},"footnotes":""},"categories":[6],"tags":[5337],"_links":{"self":[{"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/77727"}],"collection":[{"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/users\/214"}],"replies":[{"embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/comments?post=77727"}],"version-history":[{"count":7,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/77727\/revisions"}],"predecessor-version":[{"id":81484,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/77727\/revisions\/81484"}],"wp:attachment":[{"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/media?parent=77727"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/categories?post=77727"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/tags?post=77727"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}