欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java如何使用正則表達式查找指定字符串

 更新時間:2022年09月30日 09:18:54   作者:牧碼文  
在軟件開發(fā)中正則表達式是個很有用的功能,使用正則表達式可以簡化代碼,省去不少時間,下面這篇文章主要給大家介紹了關(guān)于Java如何使用正則表達式查找指定字符串的相關(guān)資料,需要的朋友可以參考下

對于一個文件名的使用經(jīng)常要做一些判斷,比如文件名是否是指定的名字,或者文件是否為指定的類型,或者篩選出以指定后綴結(jié)尾的文件名,等等

這時就可以提取出文件名的字符串進行比較判斷篩選

在java中的String類的一些常用方法中給出了這些工具方法,比如判斷兩個字符串是否一致,字符串是否以指定的前綴開始,字符串是否以指定的后綴結(jié)束等等方法

這里用到的java中的String類的常用方法

boolean equals(Object obj):比較字符串是否相同

boolean endWith(String str):測定字符串是否以指定的后綴結(jié)束

通過這兩個方法進行篩選

String par1 = “params.txt”;
String par2 = “_depth.dep”;
String par3 = “_GRD.grd”;
String par4 = “_cs.dep”;
String par5 = “_Tide.txt”;
String par6 = “Jonswap.txt”;

判斷文件名是否為params.txt,Jonswap.txt,或者以指定的后綴_depth.dep,_GRD.grd,_cs.dep,_Tide.txt結(jié)尾的文件

public class FileTest {
    public static void main(String[] args) {
        String par1 = "params.txt";
        String par2 = "_depth.dep";
        String par3 = "_GRD.grd";
        String par4 = "_cs.dep";
        String par5 = "_Tide.txt";
        String par6 = "Jonswap.txt";
        while(true) {
            Scanner scanner = new Scanner(System.in);
            System.out.println("please pressure a filename:");
            String next = scanner.next();
            if ("exit".equals(next)){
                break;
            }else if(par1.equals(next) || par2.endsWith(next) || par3.endsWith(next)
                    || par4.endsWith(next) || par5.endsWith(next) || par6.equals(next))
            {
                System.out.println("找到了你輸入的文件:" + next);
            }else{
                System.out.println("沒有找到!");
            }
        }
    }
}

以上代碼雖然可以正常運行輸出,但是它不僅匹配了后綴,只要是最后一個字母一樣的它都可以匹配上,所以多多少少有一點bug,這里的解決方法是使用正則表達式的方法,在java中的String類中也提供了使用正則表達式匹配的方法

boolean mathes(String regex):告知此字符串是否匹配給指定的正則表達式

首先了解必須的正則表達式原則

** . :通配所有的字符**
** * :匹配0次或者多次前面出現(xiàn)的正則表達式**
** + :匹配1次或者多次前面出現(xiàn)的正則表達式**
** ?:匹配0次或者1次前面出現(xiàn)的正則表達式**
** re1 | re2 :匹配正則表達式re1或者re2**

所以在制定后綴的正則表達式寫法:

.*_cs//.dep

上面代碼就是匹配后綴為_cs.dep,前面可以有內(nèi)容,也可以沒有內(nèi)容的文件名

.*_cs//.dep|.*_GRD.grd

上面代碼就是匹配兩個正則表達式,或者re1或者re2

了解了這兩個寫法之后,就可以進行匹配了:

public class RegexTest2 {
    public static void main(String[] args) {
        String regex = ".*_GRD\\.grd|.*_cs\\.dep|.*_depth\\.dep|" +
                ".*_Tide\\.txt|params\\.txt|Jonswap\\.txt";
        while(true){
            Scanner scanner = new Scanner(System.in);
            System.out.print("please preesure a fileName:");
            String next = scanner.next();
            if (next.matches(regex)){
                System.out.println("找到了:" + next);
            }else if("exit".equals(next)){
                System.out.println("byebye...");
                break;
            }else{
                System.out.println("沒有找到!");
            }
        }
    }
}

以上就完成了!

總結(jié)

到此這篇關(guān)于Java如何使用正則表達式查找指定字符串的文章就介紹到這了,更多相關(guān)Java查找指定字符串內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mybatis詳細對比一級緩存與二級緩存

    Mybatis詳細對比一級緩存與二級緩存

    MyBatis 包含一個非常強大的查詢緩存特性,它可以非常方便地配置和定制,緩存可以極大的提升查詢效率。MyBatis中默認定義了兩級緩存,分別是一級緩存和二級緩存
    2022-10-10
  • Java實現(xiàn)Fibonacci(斐波那契)取余的示例代碼

    Java實現(xiàn)Fibonacci(斐波那契)取余的示例代碼

    這篇文章主要介紹了Java實現(xiàn)Fibonacci取余的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2020-03-03
  • 詳解spring中使用solr的代碼實現(xiàn)

    詳解spring中使用solr的代碼實現(xiàn)

    本篇文章主要介紹了詳解spring中使用solr的代碼實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • 生產(chǎn)環(huán)境NoHttpResponseException異常排查解決記錄分析

    生產(chǎn)環(huán)境NoHttpResponseException異常排查解決記錄分析

    這篇文章主要為大家介紹了生產(chǎn)環(huán)境NoHttpResponseException異常排查解決記錄分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • Java中的LinkedHashSet解析

    Java中的LinkedHashSet解析

    這篇文章主要介紹了Java中的LinkedHashSet解析,與HashSet不同的是,LinkedHashSet在內(nèi)部使用了一個雙向鏈表來維護元素的順序,因此它可以保持元素的插入順序,這使得LinkedHashSet在需要保持元素順序的場景下非常有用,需要的朋友可以參考下
    2023-11-11
  • Java數(shù)據(jù)結(jié)構(gòu)之HashMap源碼深入分析

    Java數(shù)據(jù)結(jié)構(gòu)之HashMap源碼深入分析

    Java HashMap是一種基于哈希表實現(xiàn)的鍵值對存儲結(jié)構(gòu),可以實現(xiàn)快速的數(shù)據(jù)查找和存儲。它是線程不安全的,但在單線程環(huán)境中運行效率高,被廣泛應(yīng)用于Java開發(fā)中
    2023-04-04
  • java使用webuploader實現(xiàn)跨域上傳詳解

    java使用webuploader實現(xiàn)跨域上傳詳解

    目前初步接觸JAVA圖片上傳,用的webuploader。已經(jīng)跟后臺對接上,但是有個問題就是跨域請求,通過查找相關(guān)資料終于實現(xiàn)了,下面這篇文章主要給大家介紹了關(guān)于java使用webuploader實現(xiàn)跨域上傳的相關(guān)資料,需要的朋友可以參考下。
    2017-07-07
  • Mybatis中resultMap的Colum和property屬性詳解

    Mybatis中resultMap的Colum和property屬性詳解

    這篇文章主要介紹了Mybatis中resultMap的Colum和property屬性,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教。
    2022-01-01
  • Java+element實現(xiàn)excel的導(dǎo)入和導(dǎo)出

    Java+element實現(xiàn)excel的導(dǎo)入和導(dǎo)出

    本文主要介紹了Java+element實現(xiàn)excel的導(dǎo)入和導(dǎo)出,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2023-04-04
  • Java使用Gateway自定義負載均衡過濾器

    Java使用Gateway自定義負載均衡過濾器

    這篇文章主要介紹了Java使用Gateway自定義負載均衡過濾器,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2020-07-07

最新評論