我目前正在课堂上研究递归,对于一项作业,我们将使用递归来计算字符串的长度,而无需使用.getLength或类似的东西。这是我尝试过的方法,但到目前为止,我在第20行遇到错误并感到困惑。
import java.util.Scanner;
public class StringCounter {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner kb = new Scanner(System.in);
System.out.println("Enter a String: ");
String s = kb.nextLine();
System.out.println("The length of your string is: " + stringLength(s));
}
public static int stringLength(String s) {
if (s.equals(""))
return 0;
else
return stringLength(s.substring(0)) + 1;
}
}
最佳答案
您正在执行无限递归,因为要传递相同的字符串。更改为此:
return stringLength(s.substring(1)) + 1;
// ^