ayuda con recursividad

Bueno amigos el caso es que estoy viendo recursividad (en esta caso cadeas), tengo que calcular la longitud de una cadena, logicamente parece que esta bien pero no se donde esta el error, me pueden ayudar?
 
El error que me marca es
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 5
GRACIAS

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Ahhh pues es que eso es lo

Ahhh pues es que eso es lo que pasa cuado copias código así nomás sin entenderlo ni nada.

Lo que copiaste funcionaba en C donde las cadenas terminan con el caracter   pero en Java esto no tiene sentido entonces el método sigue llamandosé así mismo aún más allá de su límite. Como la cadena "hello" mide 5 caracteres y tu intentas acceder a la 6ta ( en Java la primera posición es la 0, la segunda la 1 etc. )

Quizá necesites otro ejemplo porque en Java la longitud de una cadena se obtiene con el método "length()" y no hay forma de crear una condición que haga sentido para detener la recursividad.

Lo que podrías hacer es una función recursiva para buscar algún caracter:

 

También se puede escribir las condiciones donde no se encuentra en una sola sentencia. Aquí va el ejemplo completo:

 

También se puede abusar del operador ternario y ponerlo todo en una sola expresion:

 

Pero ya se hace menos legíble :)

Aquí te dejo un link para leer más al respecto: Para entender la recursividad, primero hay que entender la recursividad

Imagen de sanlegas

gracias oscar

Pues si es que primero aprendi c y pues se como java esta basado en c, dije a de ser lo mismo, pero gracias por tomarte tu timpo y responder y sobre todo poner el link de la recusividad, saludos

Ah vaya... creí que habías

Ah vaya... creí que habías encontrado en Google algo y que le habías hecho copy/paste y ya, sin tratar de entenderlo.

Pero sí, esa es una diferencia entre Java y C que al principio parece algo molesta y luego ya ni te acuerdas de ella.