Java中檢查字符串是否以特定字符結(jié)尾
前言:
在日常開(kāi)發(fā)中經(jīng)常會(huì)遇到字符串匹配問(wèn)題,我們就來(lái)學(xué)習(xí)使用Java中的一些方便快捷的方法來(lái)解決這個(gè)問(wèn)題吧
使用String類
Java自帶的字符串類提供了多種方法來(lái)驗(yàn)證一個(gè)給定的字符串是否以特定的字符串結(jié)束
endsWith()方法
endsWith()
方法就是為了解決這個(gè)問(wèn)題而引入的。它提供了一個(gè)直接的方法來(lái)檢查一個(gè)String對(duì)象是否以另一個(gè)字符串結(jié)尾
public static boolean isEndWith(String text, String suffix) { if (text == null || suffix == null) { return false; } return text.endsWith(suffix); }
注意:需要確保text和suffix不為空,以避免出現(xiàn)空指針異常NullPointerException
matches()方法
matches()
方法也可以用來(lái)解決這個(gè)問(wèn)題,它使用正則檢查一個(gè)字符串是否與一個(gè)給定的正則表達(dá)式相匹配
public static boolean isEndWith(String text, String suffix) { if (text == null || suffix == null) { return false; } String regex = ".*" + suffix + "$"; return text.matches(regex); }
這里使用了一個(gè)正則表達(dá)式來(lái)匹配我們字符串文本末尾的后綴($)。然后我們把這個(gè)正則表達(dá)式傳給了matches()
方法執(zhí)行進(jìn)行匹配
regionMatches()
還可以使用regionMatches()
方法來(lái)解決這個(gè)問(wèn)題,regionMatches()
方法用于檢測(cè)兩個(gè)字符串在一個(gè)區(qū)域內(nèi)是否相等。
public static boolean usingStringRegionMatchesMethod(String text, String suffix) { if (text == null || suffix == null) { return false; } int toffset = text.length() - suffix.length(); return text.regionMatches(toffset, suffix, 0, suffix.length()); }
toffset表示text字符串中子區(qū)域的起始偏移量。所以為了檢查text是否以suffix結(jié)束,toffset應(yīng)該等于text的長(zhǎng)度減去suffix的長(zhǎng)度
使用Pattern類
我們還可以使用Pattern類來(lái)編譯一個(gè)正則表達(dá)式,來(lái)檢查text是否以suffix結(jié)束
重新使用上邊使用過(guò)的正則表達(dá)式:
public static boolean usingPatternClass(String text, String suffix) { if (text == null || suffix == null) { return false; } Pattern pattern = Pattern.compile(".*" + suffix + "$"); return pattern.matcher(text).find(); }
Pattern編譯了前面的正則,表示以字符串suffix結(jié)尾,并將其與我們的text相匹配
到此這篇關(guān)于Java中檢查字符串是否以特定字符結(jié)尾的文章就介紹到這了,更多相關(guān)Java特定字符內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot打包jar中沒(méi)有主清單屬性問(wèn)題
這篇文章主要介紹了springboot打包jar中沒(méi)有主清單屬性問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12JVM入門(mén)之JVM內(nèi)存結(jié)構(gòu)內(nèi)容詳解
這篇文章主要介紹了JVM入門(mén)之JVM內(nèi)存結(jié)構(gòu)內(nèi)容詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-09-09Spring?Boot在開(kāi)發(fā)過(guò)程中常用IDEA插件
這篇文章主要為大家介紹了Spring?Boot在開(kāi)發(fā)過(guò)程中常用IDEA插件,幫助大家提高開(kāi)發(fā)工作效率,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-03-03關(guān)于Java并發(fā)編程中線程間協(xié)作的兩種方式
這篇文章主要介紹了關(guān)于Java并發(fā)編程中線程間協(xié)作的兩種方式,當(dāng)隊(duì)列滿時(shí),生產(chǎn)者需要等待隊(duì)列有空間才能繼續(xù)往里面放入商品,而在等待的期間內(nèi),生產(chǎn)者必須釋放對(duì)臨界資源的占用權(quán),這是消費(fèi)者模式,需要的朋友可以參考下2023-07-07Java Guava排序器Ordering原理及代碼實(shí)例
這篇文章主要介紹了Java Guava排序器Ordering原理及代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11MyBatis_Generator插件的安裝以及簡(jiǎn)單使用方法(圖解)
下面小編就為大家?guī)?lái)一篇MyBatis_Generator插件的安裝以及簡(jiǎn)單使用方法(圖解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05Nacos-SpringBoot框架啟動(dòng)不加載bootstrap.yml的解決
這篇文章主要介紹了Nacos-SpringBoot框架啟動(dòng)不加載bootstrap.yml的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11Java?SSM實(shí)現(xiàn)前后端協(xié)議聯(lián)調(diào)詳解下篇
首先我們已經(jīng)知道,在現(xiàn)在流行的“前后端完全分離”架構(gòu)中,前后端聯(lián)調(diào)是一個(gè)不可能避免的問(wèn)題,這篇文章主要介紹了Java?SSM實(shí)現(xiàn)前后端協(xié)議聯(lián)調(diào)過(guò)程2022-08-08