1

各再帰の後に1を追加するint「count」がありますが、intが別の整数以上になると再帰を停止するifステートメントもあります。どういうわけかその 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 falseif

于 2013-04-05T03:48:10.283 に答える