Java中的通配符匹配

实现通配符模式匹配并支持“?” 和“ *”。

Java解决方案
要了解此解决方案,可以使用s =“ aab”和p =“ * ab”。

public boolean isMatch(String s, String p) {
	int i = 0;
	int j = 0;
	int starIndex = -1;
	int iIndex = -1;
 
	while (i < s.length()) {
		if (j < p.length() && (p.charAt(j) == '?' || p.charAt(j) == s.charAt(i))) {
			++i;
			++j;
		} else if (j < p.length() && p.charAt(j) == '*') {
			starIndex = j;		
			iIndex = i;
			j++;
		} else if (starIndex != -1) {
			j = starIndex + 1;
			i = iIndex+1;
			iIndex++;
		} else {
			return false;
		}
	}
 
	while (j < p.length() && p.charAt(j) == '*') {
		++j;
	}
 
	return j == p.length();
}

在这里插入图片描述

原创文章 115 获赞 0 访问量 2976

猜你喜欢

转载自blog.csdn.net/qq_41806546/article/details/105594257
今日推荐