Identificar uma letra

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)

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”.

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!

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???

[code]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));

	} 
	
}[/code]

[quote=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???
[/quote]

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:

[code]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));
}[/code]

Tchauzin!

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…

[code]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));   
	}  

[/code]

[quote]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.     char letra_a_ser_encontrada = l;     
    
  5.     int ln_quantidade = 0;     
    
  6.     ArrayList position = new ArrayList();     
    
  7.     for (int i=0; i<frase.length(); i++) {     
    
  8.           if (frase.charAt(i) == letra_a_ser_encontrada) {     
    
  9.                ln_quantidade++;     
    
  10.                position.add(i);     
    
  11.           }     
    
  12.     }     
    
  13.     System.out.println("Encontradas: "+ln_quantidade);     
    
  14.     for (int i=0; i<position.size(); i++)     
    
  15.     {     
    
  16.           System.out.println("Posição: "+position.get(i));     
    
  17.     }    [/quote]
    

Victor,

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

[code]
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));
       }[/code]

Espero ter ajudado!
Ate mais