gpt4 book ai didi

java - 有人可以改进 indexOf 在 Java 中的递归实现吗?

转载 作者:搜寻专家 更新时间:2023-11-01 01:23:26 24 4
gpt4 key购买 nike

我一直在做 Java 暑期作业,在 Java 中递归实现 indexOf 方法时遇到了问题。这是我目前所拥有的:

public int rIndexOf(char ch, int fromPos)
{
int charPos = fromPos;

if (charPos >= myString.length() || myString.equals(""))
return -1;
else if (myString.charAt(charPos) == ch)
return charPos;
else
return charPos + rIndexOf(ch, charPos + 1);
}

我似乎得到了完全错误的值,所以我只能想象这是递增或计数的问题,但我的代码不是每次都将 charPos 递增 +1 吗?还是与字符的 ASCII 值有关?

我还想知道“charPos = fromPos”这一行是否有必要。我可以在我的代码中只使用 fromPos 还是会违反“传递引用而不是值”的事情?

最佳答案

您可以绝对在您的代码中一直使用fromPos。 Java 从未通过引用传递,您甚至都不会更改 charPos 的值。

不清楚为什么您的最终返回语句添加 charPos 到递归调用的返回值。为什么不只是:

return rIndexOf(ch, charPos + 1);

?毕竟,假设它在位置 3 找到它 - 这将返回 3,所以你不想在之前的调用中将 2 添加到 3,然后将 1 添加到 5 并以 6 结束...

关于java - 有人可以改进 indexOf 在 Java 中的递归实现吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7264871/

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