查匹配字符串(Java⽅法总结)
总结三种⽅法,之后想把各种算法也总结⼀下,毕竟笔试中总会遇到。。。。。。
⼀:IndexOf
⽤法:
int indexOf(String str) :返回第⼀次出现的指定⼦字符串在此字符串中的索引。
int indexOf(String str, int startIndex):从指定的索引处开始,返回第⼀次出现的指定⼦字符串在此字符串中的索引。
int lastIndexOf(String str) :返回在此字符串中最右边出现的指定⼦字符串的索引。
int lastIndexOf(String str, int startIndex) :从指定的索引处开始向后搜索,返回在此字符串中最后⼀次出现的指定⼦字符串的索引。
思想:通过返回索引值的个数(⾮-1)判断有多少个匹配的⼦串,每次从匹配到的位置再次进⾏查
思想:
通过IndexOf
⼆:正则表达
⽤法:
这⾥⽤到的是Pattern 和 Matcher ,pattern是⼀个编译好的正则表达式,⽽Mather是⼀个正则表达式适配器,Mather的功能很强⼤,所以我们⼀般⽤pattern 来获取⼀个Matcher对象,然后⽤Matcher来操作正则表达式。
思想:编译⼦串,创建 Matcher 对象,依照正则表达式,该对象可以与任意字符序列匹配
思想:
通过正则表达式三:Split
⽤法:
split() ⽅法根据匹配给定的正则表达式来拆分字符串。
思想:将分离的字符串放到⼀个数组中,数组的长度-1为⼦串在⽗串中的匹配个数。思想:
通过split
整体代码:
package StringMatch;
import Matcher;
import 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=Patternpile(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");
时间正则表达式java
}
//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);
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。