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