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
- Inicie sesión o regístrese para enviar comentarios
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
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.