标签:模式匹配 算法
import java.util.Scanner; //简单模式匹配 public class PatternMatch { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.println("输入第一个字符串!"); String mainString=scanner.next(); System.out.println("输入第二个字符串!"); String subString=scanner.next(); scanner.close(); String temp=null; if(mainString.length()<subString.length()) { temp=mainString; mainString=subString; subString=temp; } int result=patterMatch(mainString, subString); switch (result) { case -1:System.out.println("不匹配!"); break; default: System.out.println("模式匹配!位置:"+result); } } /** * * @param mainString * @param subString * @return -1代表不匹配,其他代表子串在主串中的位置 */ public static int patterMatch(String mainString,String subString) { int flag=-1;//记下模式串在主串中的位置(首个匹配字符的下标) char []mainChar=mainString.toCharArray(); char []subChar=subString.toCharArray(); for(int k=0;k<mainChar.length;k++) { int i=k; int j=0; while(i<mainChar.length && j<subChar.length && mainChar[i]==subChar[j]) { i++; j++; } if(j==subChar.length) { flag=i-subChar.length; break; } } return flag; } }
标签:模式匹配 算法
原文地址:http://blog.csdn.net/liuxiaoxiaosmile/article/details/44960917