1

我有一个 int,“count”,它在每次递归后加一,但我还有一个 if 语句,一旦 int 等于或大于另一个整数,它就会停止递归。不知何故, if 语句被忽略了。

public static boolean wildcard(String x, String y, int substring, int count) {
    if (count >= y.length()){
        System.out.println("asdf");
        return true;
    }

    if (x.charAt(count) == y.charAt(count)){
        System.out.println("ALSKDFJKL");
        return wildcard(x, y, substring, count++);
    }
    if (y.charAt(count) == '*'){
        return wildcard(x.substring(substring), y, substring++, count);


    System.out.println("wildcard end");
    return false;
    }
4

1 回答 1

5

而不是return wildcard(x, y, substring, count++);尝试return wildcard(x, y, substring, ++count);

count++是一个后增量(意味着它会在方法返回后递增)

return wildcard(x.substring(substring), y, substring++, count);出于同样的原因,您可能还想更新。

另外,你的最后if一句话被打破了......我认为System.out并且return false想要在if街区之外

于 2013-04-05T03:48:10.283 回答