【发布时间】:2019-03-04 19:24:31
【问题描述】:
我正在实现一个代码来比较 Strings 的 Array 并使用 stringONE.compareTo(stringTwo) 返回最小的一个。
代码将使用递归来交替使用 Array 而不是 for 循环。
-
我实现了代码,让 compare 方法不断地用不同的参数调用自己,直到它到达
Array的末尾,然后异常处理将退出递归。问题在于:它一直在迭代直到达到堆栈溢出而没有触发
outofboundsException。
下面是我的代码,你可以测试一下:
代码:
public class recursivefindMinimum {
public static String [] stringArray = {"delta","alpha","omega","zeta"};
public static String result;
public static void main (String[]args) {
System.out.println("result : "+findMinimum(stringArray, 0, 1));
}
public static String findMinimum(String[] stringArray, int index1, int index2) {
int number = stringArray[index1].compareTo(stringArray[index2]);
if (number< 0) {
findMinimum(stringArray,index1,index2++); zebobi="delta1";
}
else if (number> 0) {
findMinimum(stringArray,index2,index2++);zebobi="delta2";
}
else if (number== 0) {
findMinimum(stringArray,index1,index2++);zebobi="delta3";
}
} catch(Exception e) {
System.out.println(index1);
System.out.println(index2);
result= stringArray[index1]
return result;
}
}
【问题讨论】:
-
欢迎来到 SO!这将无法编译:您缺少分号并且不能在没有
try的情况下使用catch。我还建议将全局变量放在main范围内。
标签: java arrays string recursion compareto