查找匹配字符串(Java方法總結(jié))

總結(jié)三種方法,之后想把各種算法也總結(jié)一下茅姜,畢竟筆試中總會遇到闪朱。。钻洒。奋姿。。素标。

一:IndexOf

用法:

int indexOf(String str) :返回第一次出現(xiàn)的指定子字符串在此字符串中的索引称诗。?

int indexOf(String str, int startIndex):從指定的索引處開始,返回第一次出現(xiàn)的指定子字符串在此字符串中的索引头遭。?

int lastIndexOf(String str) :返回在此字符串中最右邊出現(xiàn)的指定子字符串的索引寓免。?

int lastIndexOf(String str, int startIndex) :從指定的索引處開始向后搜索癣诱,返回在此字符串中最后一次出現(xiàn)的指定子字符串的索引。

思想:通過返回索引值的個數(shù)(非-1)判斷有多少個匹配的子串袜香,每次從匹配到的位置再次進行查找

通過IndexOf

二:正則表達

用法:

? ? ? ? 這里用到的是Pattern 和 Matcher 撕予,pattern是一個編譯好的正則表達式,而Mather是一個正則表達式適配器蜈首,Mather的功能很強大实抡,所以我們一般用pattern 來獲取一個Matcher對象,然后用Matcher來操作正則表達式欢策。

思想:編譯子串,創(chuàng)建 Matcher 對象吆寨,依照正則表達式,該對象可以與任意字符序列匹配

通過正則表達式

三:Split

用法:

split() 方法根據(jù)匹配給定的正則表達式來拆分字符串踩寇。

思想:將分離的字符串放到一個數(shù)組中啄清,數(shù)組的長度-1為子串在父串中的匹配個數(shù)。

通過split

整體代碼:

package StringMatch;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

/*

* Find the child's count from parent

* @author Amma

*/

public class Main {

//IndexOf

? ? public void ThroughIndexOf(String parent,String child){

int count=0;

int StartIndex=0;

while(parent.indexOf(child,StartIndex)!=-1){

StartIndex = parent.indexOf(child,StartIndex);

StartIndex+=child.length();

count++;

}

System.out.print("The number of matches is:"+count+"\n");

}

//Match

? ? public void ThroughMatch(String parent,String child){

int count=0;

//Compile takes substrings as parameters

? ? ? ? Pattern p=Pattern.compile(child);

//Matcher receives the parent string as a parameter

? ? ? ? Matcher m=p.matcher(parent);

while(m.find()){

count++;

}

System.out.print("The number of matches is:"+count+"\n");

}

//Split

public void ThroughSplit(String parent,String child){

int count=0;

String[] array=parent.split(child);

count=array.length-1;

System.out.print("The number of matches is:"+count);

}

public static void main(String[] args) {

String P="Amma is my name,I love my family,I love my country!";

String C="my";

Main main=new Main();

System.out.print("****** The result of IndexOf ******"+"\n");

main.ThroughIndexOf(P,C);

System.out.print("****** The result of Match ******"+"\n");

main.ThroughMatch(P,C);

System.out.print("****** The result of Split ******"+"\n");

main.ThroughSplit(P,C);

}

}

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末姑荷,一起剝皮案震驚了整個濱河市盒延,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鼠冕,老刑警劉巖添寺,帶你破解...
    沈念sama閱讀 211,423評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異懈费,居然都是意外死亡计露,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,147評論 2 385
  • 文/潘曉璐 我一進店門憎乙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來票罐,“玉大人,你說我怎么就攤上這事泞边「醚海” “怎么了?”我有些...
    開封第一講書人閱讀 157,019評論 0 348
  • 文/不壞的土叔 我叫張陵阵谚,是天一觀的道長蚕礼。 經(jīng)常有香客問我,道長梢什,這世上最難降的妖魔是什么奠蹬? 我笑而不...
    開封第一講書人閱讀 56,443評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮嗡午,結(jié)果婚禮上囤躁,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好狸演,可當我...
    茶點故事閱讀 65,535評論 6 385
  • 文/花漫 我一把揭開白布言蛇。 她就那樣靜靜地躺著,像睡著了一般宵距。 火紅的嫁衣襯著肌膚如雪猜极。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,798評論 1 290
  • 那天消玄,我揣著相機與錄音,去河邊找鬼丢胚。 笑死翩瓜,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的携龟。 我是一名探鬼主播兔跌,決...
    沈念sama閱讀 38,941評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼峡蟋!你這毒婦竟也來了坟桅?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,704評論 0 266
  • 序言:老撾萬榮一對情侶失蹤蕊蝗,失蹤者是張志新(化名)和其女友劉穎仅乓,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蓬戚,經(jīng)...
    沈念sama閱讀 44,152評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡夸楣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,494評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了子漩。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片豫喧。...
    茶點故事閱讀 38,629評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖幢泼,靈堂內(nèi)的尸體忽然破棺而出紧显,到底是詐尸還是另有隱情,我是刑警寧澤缕棵,帶...
    沈念sama閱讀 34,295評論 4 329
  • 正文 年R本政府宣布孵班,位于F島的核電站,受9級特大地震影響挥吵,放射性物質(zhì)發(fā)生泄漏重父。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,901評論 3 313
  • 文/蒙蒙 一忽匈、第九天 我趴在偏房一處隱蔽的房頂上張望房午。 院中可真熱鬧,春花似錦丹允、人聲如沸郭厌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽折柠。三九已至宾娜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間扇售,已是汗流浹背前塔。 一陣腳步聲響...
    開封第一講書人閱讀 31,978評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留承冰,地道東北人华弓。 一個月前我還...
    沈念sama閱讀 46,333評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像困乒,于是被迫代替她去往敵國和親寂屏。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,499評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 前言 最先接觸編程的知識是在大學里面,大學里面學了一些基礎的知識百宇,c語言考廉,java語言,單片機的匯編語言等携御;大學畢...
    oceanfive閱讀 3,048評論 0 7
  • 一芝此、Java 簡介 Java是由Sun Microsystems公司于1995年5月推出的Java面向?qū)ο蟪绦蛟O計...
    子非魚_t_閱讀 4,160評論 1 44
  • 這是一次怎樣的重逢啊因痛? 再一次見到你婚苹, 你已經(jīng)變得成熟勇敢。 你曾經(jīng)代表了我最純真與青澀的歲月鸵膏。 送走你時膊升, 我裝...
    丹丹姐姐Erin閱讀 186評論 0 0