您的位置:首页 > 编程语言 > Java开发

java 递归实现通配符匹配

2014-01-03 10:14 169 查看
/**

     *

     * 字符串中存在星号(表示多个字符)匹配

     * @param pattern  包含星号的字符串

     * @param str  要匹配的字符串

     * @return

     */

    public static boolean wildcardStarMatch(String pattern, String str) {

int strLength = str.length();

int strIndex = 0;

char ch;

for (int patternIndex = 0,patternLength = pattern.length(); patternIndex < patternLength; patternIndex++) {

ch = pattern.charAt(patternIndex);

if (ch == ‘*’) {

// 通配符星号*表示可以匹配任意多个字符

while (strIndex < strLength) {

if (wildcardStarMatch(pattern.substring(patternIndex + 1), str.substring(strIndex))) {

return true;

}

strIndex++;

}

} else {

if ((strIndex >= strLength) || (ch != str.charAt(strIndex))) {

return false;

}

strIndex++;

}

}

return (strIndex == strLength);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: