Boa tarde! Estou tendo dificuldades em fazer um método recursivo para achar uma letra ou caracter numa string. Se alguém souber e puder me ajudar agradeço!
Acho que o caso base tem ser o fim da string, mas não tenho certeza.
Dúvida achar caracter!
6 Respostas
Você provavelmente irá precisar apenas de s.charAt (0), s.length() e s.substring (1).
s.charAt (0) é o primeiro caracter de uma string s (obviamente se você chamar s.charAt(0) para uma string vazia, dá pau).
s.length() retorna o comprimento da string, em caracteres.
s.substring (1) retorna uma string que é igual à string original, exceto o primeiro caracter (por exemplo, “abcd”.substring (1) retorna “bcd”.)
Só com isso já dá para fazer seu programa recursivo. Não se esqueça que o método deve retornar “boolean”.
Se estiver usando o Java 6 ou posterior, pode usar o método isEmpty() para checar se uma string é vazia, em vez de usar length() == 0.
método recursivo? p/ que?
SSH,
é um exercício de aula, está pedindo para fazer com um algoritmo recursivo.
esse método aqui inverte a string, veja se ajuda:
public String inverte(String palavra) {
if ("".equals(palavra))
return "";
int ultimaPosicao = palavra.length() - 1;
return palavra.charAt(ultimaPosicao)
+ inverte(palavra.substring(0, ultimaPosicao));
}
O algoritmo abaixo retorna o maior número de um vetor de inteiros.
public static int maiorValor(int []dados,int i){
int maior=dados[i];
if(dados.length-1==i)
return maior;
else
return maior < maiorValor(dados, i+1)?maior=maiorValor(dados, i+1):maior;
}
Estou tendo o seguinte problema : Quero retornar uma letra ou caracter, mas no retorno de quem chamou o método estou recebendo um '?', acho que é pq tenho uma string no return que pego por parametro e meu tipo de retorno é char segundo meu método, se troco para string o retorno, me retorna a palavra e não o caracter, mas como faço para resolver isso, quero retornar a letra que achei na String.
public static char pesquisar(String palavra, char letra) {
int ultimaPosicao = palavra.length() - 1;
char pegaLetra = palavra.charAt(ultimaPosicao);
if ("".equals(palavra)||letra== pegaLetra) {
return 0;
}
return (char) (palavra.charAt(ultimaPosicao) + pesquisar(
palavra.substring(0, ultimaPosicao), letra));
}