《疯狂Java讲义》9
目錄
正則表達(dá)式
Java集合
正則表達(dá)式
????昨天簡(jiǎn)單的介紹了一下正則表達(dá)式(好吧,就說(shuō)了一句)。個(gè)人覺(jué)得這個(gè)玩意挺神奇,挺好玩,但是我不容易直接表述的很清楚。就簡(jiǎn)單講點(diǎn)理論上的東西吧。
1. 正則表達(dá)式是一個(gè)用于匹配字符串的模板。實(shí)際上,任意字符串都可以當(dāng)成正則表達(dá)式使用,例如“abc”,它也是一個(gè)正則表達(dá)式,只是它只能匹配“abc”字符串。
2. 創(chuàng)建正則表達(dá)式:
????創(chuàng)建正則表達(dá)式就是創(chuàng)建一個(gè)特殊的字符串。在這個(gè)表達(dá)式中,有很多的字符,預(yù)定義字符、邊界匹配符、特殊字符等。具體大家自行百度好了。
????正則表達(dá)式支持的數(shù)量標(biāo)識(shí)符有如下幾種模式:
????(1)Greedy(貪婪模式)
????(2)Reluctant(勉強(qiáng)模式)
????(3)Possessive(占有模式)
3. 使用正則表達(dá)式:
????一旦在程序中定義了正則表達(dá)式,就可以使用Pattern和Matcher來(lái)使用正則表達(dá)式。
????Pattern對(duì)象是正則表達(dá)式編譯后在內(nèi)存中的表示形式,因此,正則表達(dá)式字符串必須先被編譯成Pattern對(duì)象,然后再利用Pattern對(duì)象創(chuàng)建對(duì)應(yīng)的Matcher對(duì)象。執(zhí)行匹配所涉及的狀態(tài)保留在Matcher對(duì)象中,多個(gè)Matcher對(duì)象可共享同一個(gè)Pattern對(duì)象。
????通過(guò)Matcher類的find()和group()方法可以從目標(biāo)字符串中依次取出特定子串。
舉個(gè)栗子:
?
上面展示的是在一些文字中自動(dòng)尋找出電話號(hào)碼的代碼。
????紅框中的就是在創(chuàng)建Pattern和Matcher對(duì)象,目的是尋找電話號(hào)碼,引號(hào)中的含義是:13開(kāi)頭或者15開(kāi)頭,后面隨意跟一個(gè)阿拉伯?dāng)?shù)字,然后再隨意跟8個(gè)數(shù)字的字符串。下面的藍(lán)框就是通過(guò)find和group方法獲得所需要的字符串。結(jié)果如下:
????還是很神奇的對(duì)吧!如果程序再進(jìn)一步,可以從網(wǎng)上提取超鏈接信息,再根據(jù)超鏈接打開(kāi)其他網(wǎng)頁(yè),然后再其他網(wǎng)頁(yè)上重復(fù)這個(gè)過(guò)程就可以實(shí)現(xiàn)簡(jiǎn)單的網(wǎng)絡(luò)爬蟲(chóng)了。
????其實(shí)還有很多比較好的操作,但是我不想寫(xiě)~后面就是什么國(guó)際化與格式化什么的,現(xiàn)在不想看~第七章過(guò)了~~噢耶!!!
Java集合
????java集合類是一種特別有用的工具類,可用于存儲(chǔ)適量不等的對(duì)象,并可以實(shí)現(xiàn)常用的數(shù)據(jù)結(jié)構(gòu),如棧、隊(duì)列等。除此之外,Java集合還可用于保存具有映射關(guān)系的關(guān)聯(lián)數(shù)組。Java集合大致可以分為Set、List、Queue和Map四種體系,其中Set表示無(wú)序,不可重復(fù)的集合;List表示有序,重復(fù)的集合;而Map表示既有映射關(guān)系的集合;Java5又增加了Queue體系集合,代表一種隊(duì)列集合實(shí)現(xiàn)。
Java集合概述
????為了保存數(shù)量不確定的數(shù)據(jù),以及保存具有映射關(guān)系的數(shù)據(jù)(也被稱為關(guān)聯(lián)數(shù)組),Java提供了集合類。集合類主要負(fù)責(zé)保存、盛裝其他數(shù)據(jù),因此集合類也被稱為容器類。
????集合類和數(shù)組不一樣,數(shù)組元素既可以是基本類型的值,也可以是對(duì)象;而集合里只能保存對(duì)象。
????Java的集合類主要是由兩個(gè)接口派生而出:Collection和Map。
????將Java所有集合分成三大類:Set集合、List集合、Map集合。
總結(jié)
以上是生活随笔為你收集整理的《疯狂Java讲义》9的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 《疯狂Java讲义》8
- 下一篇: 《疯狂Java讲义》10