For investors
股價(jià):
5.36 美元 %For investors
股價(jià):
5.36 美元 %認(rèn)真做教育 專心促就業(yè)
對(duì)于數(shù)據(jù)的提取查找,我們推薦大家使用功能強(qiáng)大的正則表達(dá)式,在Android平臺(tái)中可以方便的使用Java VM中自帶的Regex正則表達(dá)式庫,實(shí)際測試性能比STL和Boost的差不了多少,當(dāng)然了Android上的正則庫是NDK編寫的底層。
這里我們就拿常用的電話號(hào)碼匹配來做個(gè)例子,大家都知道國外的號(hào)碼中間有幾個(gè)橫杠,這里我們就用國內(nèi)的區(qū)號(hào)來測試吧。
String phoneArray = "cwj 的號(hào)碼:021-12345n" + "smart 的號(hào)碼:021-88888n"+ "李雷 的號(hào)碼:010-99999n" + "韓美美 的號(hào)碼:021-66666n";
如果我們需要匹配以021開頭的正則表達(dá)式為 .*021-d{5} ,我們使用Java的Pattern類編譯封裝,使用matcher來查找,其中g(shù)roup方法就是結(jié)果,當(dāng)然group(0)是找的自己串,同時(shí)可能有 多個(gè)結(jié)果,注意數(shù)組下溢問題。
Pattern pattern = Pattern.compile(".*021-d{5}");
Matcher matcher = pattern.matcher(phones1);
while(matcher.find())
{
String s= matcher.group() ;
Log.e(s,"#"); // 使用Android的Logcat查看運(yùn)行結(jié)果,直接使用e標(biāo)志紅色的為結(jié)果。
}
正則表達(dá)式相對(duì)強(qiáng)大,如果過去做過Web開發(fā)的你,對(duì)于用戶輸入的過濾可能相當(dāng)?shù)氖煜ぁ>唧w的正則式編寫可以查看網(wǎng)上的相關(guān)內(nèi)容。
【免責(zé)聲明】本文部分系轉(zhuǎn)載,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé)。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)?jiān)?0日內(nèi)與聯(lián)系我們,我們會(huì)予以更改或刪除相關(guān)文章,以保證您的權(quán)益!