黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java培訓(xùn) Java培訓(xùn)教程:Java新的正則表達式功能

Java培訓(xùn)教程:Java新的正則表達式功能

更新時間:2019-12-20 16:14:57 來源:動力節(jié)點 瀏覽2871次

Java 9中的JDK分為模塊。人們可以合理地期望有一個新的模塊用于正則表達式處理包和類。其實沒有。該模塊java.base是所有其他模塊默認依賴的默認模塊,因此導(dǎo)出的軟件包的類始終在Java應(yīng)用程序中可用。正則表達式包java.util.regex由此模塊導(dǎo)出。這使得開發(fā)變得更簡單:如果我們要在代碼中使用正則表達式,則不需要明確地“要求”一個模塊。似乎正則表達式對于Java包含在基本模塊中是至關(guān)重要的。

Java培訓(xùn)教程:Java新的正則表達式功能

  正則表達式類

  該包java.util.regex包含類

  MatchResult

  Matcher

  Pattern 和

  PatternSyntaxException

  改變API的唯一類是Matcher。

  班級比賽中的變化

  該課程Matcher增加了五種新方法。其中四個是已經(jīng)存在的方法的超載版本。這些是:

  appendReplacement

  appendTail

  replaceAll

  replaceFirst

  results

  前四個存在于早期版本中,只有參數(shù)類型的改變(畢竟是什么重載意味著)。

  appendReplacement /尾

  在的情況下,appendReplacement和appendTail唯一的區(qū)別是,該參數(shù)也可以是一個StringBuilder,而不僅僅是StringBuffer。考慮到StringBuilder在Java 1.5 中引入的東西,像13年前,沒有人應(yīng)該說這是一個不小心的行為。

  它雖然多么有趣的API JDK的當(dāng)前網(wǎng)絡(luò)版文檔的行為appendReplacement進行StringBuilder論證。較舊的StringBuffer有爭議的方法明確表示替換字符串可能包含將被相應(yīng)組替換的命名引用。該StringBuilderargumented版本錯過這個。該文檔似乎是復(fù)制/粘貼,然后編輯。該文本將“緩沖區(qū)”替換為“構(gòu)建器”并且相似,并且將刪除指定的引用要素的文本。

  我嘗試使用Java 9 build160的功能,這兩個方法版本的結(jié)果是一樣的。這不應(yīng)該是一個驚喜,因為這兩個方法的源代碼是相同的,JDK中的一個簡單的復(fù)制/粘貼,除了參數(shù)類型。

  似乎可以使用

  @Test

  注釋行或每一行上面的行。然而,文檔僅涉及編號的引用。

  的replaceAll /第一

  這也是一個“舊”方法,用一些新的字符串替換匹配的組。舊版本和新版本之間的唯一區(qū)別是如何提供替換字符串。在舊版本中,字符串是String在調(diào)用該方法之前計算的。在新版本中,字符串作為a Function。為每個匹配結(jié)果調(diào)用此函數(shù),并且可以即時計算替換字符串。

  知道這個課程Function是在3年前在Java 8中引入的,它在正則表達式中的新用法可能是一個小小的破折號?;蛘咭苍S...可能我們應(yīng)該看到這是十年后的一個提示,當(dāng)課程Fuction將是13歲,我們還會有Java 9?

  讓我們深入了解這兩種方法。(實際上只是replaceAll因為replaceFirst它是相同的,除了它只替換了第一個匹配的組。)我嘗試創(chuàng)建一些不是絕對復(fù)雜的例子,當(dāng)這樣的使用可能是有價值的。

  第一個示例來自JDK文檔:

  @Test

  它不是太復(fù)雜,顯示功能。使用lambda表達式是絕對足夠的。我不能想象一個更簡單的方法來大寫常量字符串文字“狗”。也許只寫“DOG”。好吧,我只是在開玩笑。但真的這個例子太簡單了。對于更復(fù)雜的文檔,文檔可能會使閱讀器與文檔化方法的功能分散。真的:不要指望在JavaDoc中不太復(fù)雜的例子。它描述了如何使用API,而不是為什么API被創(chuàng)建為一種設(shè)計的方式。

  但是現(xiàn)在我們來看一些比較復(fù)雜的例子。我們要在字符串中替換#數(shù)字1,2,3等的字符。字符串包含編號的項目,如果我們在字符串中插入一個新的字符串,我們不想手動重新編號。有時我們分組兩個項目,在這種情況下我們寫##,然后我們只想跳過下一個序列號#。由于我們有一個單元測試,代碼比我可以把它描述得更好:

  @Test

  Java培訓(xùn)教程:Java新的正則表達式功能

傳遞的lambda表達式replaceAll獲取計數(shù)器并計算下一個值。如果我們使用了一個,#那么如果我們使用兩個,那么它會增加1,那么它將兩個添加到計數(shù)器等等。因為lambda表達式不能改變周圍環(huán)境中變量的值(該變量必須是有效的最終),所以計數(shù)器不能是變量int或Integer變量。我們需要一個擁有int值的對象,并且可以被更改。AtomicInteger即使我們不使用它的原子特征也是如此。

  下一個例子更進一步,并進行一些數(shù)學(xué)計算。它將字符串中的任何浮點格式的數(shù)字替換為其正弦值。這樣就可以糾正我們的判決,因為罪(pi)甚至不接近于pi,這在這里是不能精確表達的。它接近于零:

  @Test

  我們還將通過這個計算方式來演示我們列表中最后一個方法的演示,這是一個全新的Matcher類。

  流結(jié)果()

  新方法results()返回匹配結(jié)果的流。更準(zhǔn)確地說它返回Stream的MatchResult對象。在下面的示例中,我們使用它從字符串中收集任何浮點格式的數(shù)字,并打印它們的正弦值逗號分隔:

  @Test public void resultsTest(){

Java培訓(xùn)教程:Java新的正則表達式功能

      以上就是動力節(jié)點Java培訓(xùn)機構(gòu)小編介紹的“Java培訓(xùn)教程:Java新的正則表達式功能”的內(nèi)容,希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。

       相關(guān)文章

  零基礎(chǔ)怎么自學(xué)Java,完整版Java學(xué)習(xí)路線圖

  你還在糾結(jié)學(xué)Java,是自學(xué)還是去培訓(xùn)班嗎

  一個標(biāo)準(zhǔn)的Java程序員如何進階?

  Java學(xué)習(xí)路線清單,快速進階Java

  Java編程初學(xué)者要如何進階

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 午夜婷婷网 | 国产羞羞的视频在线观看免费 | aa毛片免费全部播放完整 | 性色生活片在色在线观看 | 在线观看国产一区亚洲bd | 午夜剧j | 一级特黄色毛片免费看 | 免费观看欧美一区二区三区 | 公妇乱淫日本免费观看 | 在线成人爽a毛片免费软件 在线成人影片 | 在线观看视频免费 | 久久九九视频 | 重口高h 全肉 文调教bl | 手机午夜看片 | 中文字幕日韩一区二区 | 国产欧美国日产网站 | www日韩免费高清视频 | 亚洲日本一区二区三区在线不卡 | 国产激情视频一区二区三区 | 欧美日批 | 欧美a级片在线观看 | 日韩在线免费视频 | 色天天天天 | 国产欧美日韩精品专区 | 日韩第1页 | 日韩毛片免费 | 最近2019年最中文字幕视频 | 在线免费观看黄 | 日韩一区二区三区在线免费观看 | 欧美影院一区二区 | japanese黑人高清 | 美女视频永久黄网站免费观看韩国 | 欧美特黄一级大黄录像 | 在线国产视频观看 | 永久视频免费 | aa毛片免费全部播放完整 | 一级aaa级毛片午夜在线播放 | 日韩欧美在线播放 | 国产午夜一区二区在线观看 | 色噜噜狠狠狠狠色综合久一 | 成人国产网站v片免费观看 成人国产一区二区三区 |