gpt4 book ai didi

Java递归字符串比较与 "*"作为通配符

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:31:10 26 4
gpt4 key购买 nike

我正在编写一个递归方法来检查字符串的每个字母以进行比较。我无法使“*”字符与任何字符匹配,并根据需要执行尽可能多的字母。 (使其成为通配符)

我想知道是否有人可以给我一些关于将要使用的算法的提示?

这是我目前所拥有的。

public static boolean match(String x, String y) {
return match_loop(x, y, 0, 1);
}

public static boolean match_loop(String a, String b, int i, int s) {
try {
if (a == b) {
return true;
}

if (i >= a.length() && i >= b.length()) {
return true;
}

if (a.charAt(i) == b.charAt(i)) {
return match_loop(a, b, i + 1, s);
}


//(((...A bunch of if statements for my other recursion requirements

return false;

} catch (java.lang.StringIndexOutOfBoundsException e) {
return false;
}
}

public static void main(String[] args) {
System.out.println(match("test", "t*t")); // should return true
}

我想做的是向该方法添加另一个参数,一个将充当字母反计数器的 int。基本上我在想这个如果 char(i-s) 处的 a 或 b(s 最初为 1。)是 a *,请记忆一下 s+1 的递归。然后是更多不同的 ifs 语句来修复错误。然而,这种方法看起来真的很长而且重复。我可以使用任何其他算法吗?

最佳答案

不要使用== 进行String 值比较。使用 equals() 方法。

if (a == b) 应该是 if a.equals(b)

关于Java递归字符串比较与 "*"作为通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15780058/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com