使用递归来计算字符串的长度

Ste*_*Eck 1 java string recursion

我正在研究类中的递归,对于赋值,我们将使用递归来计算字符串的长度,而不使用.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;
}

}
Run Code Online (Sandbox Code Playgroud)

pad*_*ddy 6

您正在进行无限递归,因为您传递的是相同的字符串.改为:

return stringLength(s.substring(1)) + 1;
                            //  ^
Run Code Online (Sandbox Code Playgroud)