【发布时间】:2015-10-25 22:19:29
【问题描述】:
我正在尝试比较两个字符串,看看一个字符串是否包含另一个字符串以及什么点。所以基本上我试图找到indexOf。但是,我不想使用它。
这是我编写的使用 indexOf 完美运行的代码:
import java.lang.*;
public class Index
{
public static void indexOf(String main, String check)
{
System.out.println(main.toLowerCase().indexOf(check.toLowerCase()));
}
public static void main(String[] args)
{
indexOf("Barack Obama", "Obama");
}
}
但是,问题是我不想使用 indexOf。此外,我正在尝试使代码递归。
所以我尝试编写这段代码:
public class Index
{
public static int indexOf(String main, String check)
{
int n = check.length();
int i = main.length();
int h = 0;
for (int j = 0; j < n; j++)
{
if (main.charAt(j) == check.charAt(j)) h++;
}
return h - 1;
}
public static void main(String[] args)
{
System.out.println(indexOf("Barack", "B"));
}
}
但是,这个完全不能按预期工作,甚至不是递归的。
无论如何,我可以让这个方法递归而不使用 indexOf?
【问题讨论】:
-
到目前为止,这个问题太宽泛了,我们无法回答。就像我问你:“我有这辆不会飞的绿色三轮车……有什么办法可以把它变成一辆会飞的红色汽车吗?”答案是,嗯,可能。但是如何完全取决于你自己,我猜这就是家庭作业的重点。你坚持哪一个具体步骤?
-
查看维基百科中的recursive linear search section,它可能会帮助您入门。
-
@Frecklefoot 使用递归来明确迭代分配的一个常见原因是学习如何使用递归。
-
学习这很好,但如果你尝试使用递归来解决编码蝙蝠或类似的问题,它可能会失败。