Dúvida achar caracter!

6 respostas
N

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.

6 Respostas

B

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.

ssh

método recursivo? p/ que?

N

SSH,

é um exercício de aula, está pedindo para fazer com um algoritmo recursivo.

ssh

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)); }

Jemerson

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;
      
      


    }
Passe por parâmetro uma StringBuffer ,o caracter que você necessita e talvez uma variável i para controle. A lógica para tratar seu caso é bem parecida.Dê uma olhada e qualquer coisa estamos aí.
N

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));
	}
Criado 24 de novembro de 2011
Ultima resposta 25 de nov. de 2011
Respostas 6
Participantes 4