Identificar uma letra

6 respostas
V

Pessoal não tenho noção de como fazer com que vc escreva uma frase e identifique se tem alguma letra na quela frase e ainda retorne sua posição… vou deixar um exemplo dai se puderem me dar algumas sugestões agradeceria… só que questão sem usar o metodo indexOF…

Exemplo1:
Frase : teste da pesquisa de um caracter qualquer
Procurar por : x
Retorno : -1 (não existe o caracter ?x? na frase)
Exemplo 2:
Frase : teste da pesquisa de um caracter qualquer
Procurar por : d
Retorno : 6 (índice da letra d na frase)

6 Respostas

E

Você precisa usar um “for” e o método “charAt” ou “substring” da classe java.lang.String; você também precisa usar o método “length”.

Se for usar “substring”, não se esqueça que strings comparam-se com o método “equals”.

igor_jua

Cara…o método indexOf de um objeto String faz exatamente isso pra vc!

string.indexOff("x");
//se houver x dentro do objeto string, ele te trará a 
////posição de onde x esta na string, se não ele te trará -1

vlwss!

V

bom se eu entendi fiz mais ou menos isso... ele conta qtas letras tem a frase e agora como faço para ele verificar a letra???

String aux ;

		aux = JOptionPane.showInputDialog("Digite:");

		if (aux == null){

		JOptionPane.showMessageDialog(null, "CANCELOU!!!");

		}

		else{

		System.out.println(aux.length());

		for (int i=aux.length() - 1; i >= 0 ; i--){

		System.out.print(aux.charAt(i));

		} 
		
	}
lina
VictorFarion:
bom se eu entendi fiz mais ou menos isso... ele conta qtas letras tem a frase e agora como faço para ele verificar a letra???

Oi,

Sim! a logica é exatamente isso... essa é uma maneira basica de fazer, porém não deixa de ser uma ótima saida.

Seu exemplo melhorado:

String
frase = "teste da pesquisa de um caracter qualquer";

char letra_a_ser_encontrada = 'd';
		
int ln_quantidade = 0;
		
ArrayList position = new ArrayList();
		
for (int i=0; i<frase.length(); i++) {
			
      if (frase.charAt(i) == letra_a_ser_encontrada) {
           ln_quantidade++;
           position.add(i);
      }
}
		
System.out.println("Encontradas: "+ln_quantidade);
		
for (int i=0; i<position.size(); i++)
{
      System.out.println("Posição: "+position.get(i));
}

Tchauzin!

V

Muito legal o código era isso msmo que e queria... mas tem um porem a letra a ser procurada temq ue ser informada pelo usuário se eu fizer com o JoptionPane... ele não reconhece como char na hora de fazer o processo ... então gostaria de saber pra facilitar algo para converter oq foi digitado no JOptionPane para char.. tem como??? vou colar o código como eu fiz para ser melhor compreendido...

String l,frase;   
		frase = JOptionPane.showInputDialog("Digite uma frase :");   
		l = JOptionPane.showInputDialog("Digite a letra a ser procurada :");
		
		char letra_a_ser_encontrada = l;   
		           
		int ln_quantidade = 0;   
		           
		ArrayList position = new ArrayList();   
		           
		for (int i=0; i<frase.length(); i++) {   
		               
		      if (frase.charAt(i) == letra_a_ser_encontrada) {   
		           ln_quantidade++;   
		           position.add(i);   
		      }   
		}   
		           
		System.out.println("Encontradas: "+ln_quantidade);   
		           
		for (int i=0; i<position.size(); i++)   
		{   
		      System.out.println("Posição: "+position.get(i));   
		}
tiagobernardo32
Muito legal o código era isso msmo que e queria... mas tem um porem a letra a ser procurada temq ue ser informada pelo usuário se eu fizer com o JoptionPane... ele não reconhece como char na hora de fazer o processo ... então gostaria de saber pra facilitar algo para converter oq foi digitado no JOptionPane para char.. tem como??? vou colar o código como eu fiz para ser melhor compreendido...

view plaincopy to clipboardprint?

1. String l,frase;
2. frase = JOptionPane.showInputDialog("Digite uma frase :");
3. l = JOptionPane.showInputDialog("Digite a letra a ser procurada :");
4.
5. char letra_a_ser_encontrada = l;
6.
7. int ln_quantidade = 0;
8.
9. ArrayList position = new ArrayList();
10.
11. for (int i=0; i 12.
13. if (frase.charAt(i) == letra_a_ser_encontrada) {
14. ln_quantidade++;
15. position.add(i);
16. }
17. }
18.
19. System.out.println("Encontradas: "+ln_quantidade);
20.
21. for (int i=0; i 22. {
23. System.out.println("Posição: "+position.get(i));
24. }

Victor,

você pode utilizar o charAt para passar a string a para char.
Ficaria assim:

String l,frase;
            frase = JOptionPane.showInputDialog("Digite uma frase :");
            l = JOptionPane.showInputDialog("Digite a letra a ser procurada :");

            char letra_a_ser_encontrada = l.charAt(0); //pega a letra que estiver na posição 0 do que foi digitado.....


            int ln_quantidade = 0;

            ArrayList position = new ArrayList();

           for (int i=0; i<frase.length(); i++) {

                 if ( letra_a_ser_encontrada==frase.charAt(i) )
                 {
                      ln_quantidade++;
                      position.add(i);
                 }
           }

           System.out.println("Encontradas: "+ln_quantidade);

           for (int i=0; i<position.size(); i++)
           {
                 System.out.println("Posição: "+position.get(i));
           }

Espero ter ajudado!
Ate mais

Criado 7 de outubro de 2009
Ultima resposta 8 de out. de 2009
Respostas 6
Participantes 5