[ Resolvido ] Ajuda pegar maior Palavra em Vetor

4 respostas
raffaelssp

Estou com problemas pra pegar a maior palavra digitado em string.
Abaixo está o que eu consegui fazer.

Por exemplo: Eu entro com palavra: Amor e depois Paixao
Eu consigo pegar o tamano da palavra Amor = 4 e Paixão = 6
Só que eu tentei criar IF para pegar o maior que no exemplo seria Paixao e exibr somente ele, mas não consegui.
Tem palavras que da certinho porem outras ele pega a menor e nao a maior.

public class Array {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here

       String[] nomes = new String[2];

       String nome = "";
       int maior = 0;

 int tam = nomes.length;

   for (int i = 0; i < nomes.length; i++)
   {
       nomes[i] = JOptionPane.showInputDialog("Digite o " + (i + 1) + "º nome");
   }

  int tamanho = nomes.length;
    for ( int i = 0; i < tamanho; i++)
        {
            tam = nomes[i].length() ;
            System.out.println(tam);

        }
        JOptionPane.showMessageDialog(null,nome);          
        }
}

4 Respostas

P

cara, falta você comparar os itens do seu array, do jeito que está você sempre vai mostrar a ultima palavra

// omitido...
String maiorPalavra = "";
int tamanho = nomes.length;  
    for ( int i = 0; i < tamanho; i++)  
        {  
            tam = nomes[i].length() ;  
            if ( maiorPalavra.length < tam ){
               maiorPalavra = nomes[i];
            }
            System.out.println(tam);  
  
        }  
        JOptionPane.showMessageDialog(null,maiorPalavra );    
// omitido...

tenta algo assim

raffaelssp

paulovloghan:
cara, falta você comparar os itens do seu array, do jeito que está você sempre vai mostrar a ultima palavra

// omitido...
String maiorPalavra = "";
int tamanho = nomes.length;  
    for ( int i = 0; i < tamanho; i++)  
        {  
            tam = nomes[i].length() ;  
            if ( maiorPalavra.length < tam ){
               maiorPalavra = nomes[i];
            }
            System.out.println(tam);  
  
        }  
        JOptionPane.showMessageDialog(null,maiorPalavra );    
// omitido...

tenta algo assim

Ta dando erro no

if ( maiorPalavra.length < tam ){

FacaNaCaveira

Fala ai raffaelssp

Acredito que a solução do seu problema seja essa:
1 - inicializei a variavel maior com zero
2 - criei um If onde ele analisa se a variavel maior é MENOR que o tamanho da palavra corrente, caso seja, maior irá receber o tamanho da palavra corrente e indicepalavra receberá o indice que indica a posição da palavra no "vetor".
3 - por fim como sei aonde a maior palavra esta posicionada, utilizo a variavel indicepalavra para indicar qual é a maior.
Criei um if onde e

public class Array {
    public static void main(String[] args) {
        String[] nomes = new String[2];
        int maior = 0;
        int indicepalavra=0;
        
        int tamanho = nomes.length;

        for (int i = 0; i < tamanho; i++) {
            nomes[i] = JOptionPane.showInputDialog("Digite o " + (i + 1) + "º nome");
        }
        for (int i = 0; i < tamanho; i++) {
            if (maior < nomes[i].length()) {
                maior = nomes[i].length();
                indicepalavra = i;
            }
        }
        JOptionPane.showMessageDialog(null, nomes[indicepalavra]);
    }
}

Abração 8)
Max

raffaelssp

FacaNaCaveira:
Fala ai raffaelssp

Acredito que a solução do seu problema seja essa:
1 - inicializei a variavel maior com zero
2 - criei um If onde ele analisa se a variavel maior é MENOR que o tamanho da palavra corrente, caso seja, maior irá receber o tamanho da palavra corrente e indicepalavra receberá o indice que indica a posição da palavra no "vetor".
3 - por fim como sei aonde a maior palavra esta posicionada, utilizo a variavel indicepalavra para indicar qual é a maior.
Criei um if onde e

public class Array {
    public static void main(String[] args) {
        String[] nomes = new String[2];
        int maior = 0;
        int indicepalavra=0;
        
        int tamanho = nomes.length;

        for (int i = 0; i < tamanho; i++) {
            nomes[i] = JOptionPane.showInputDialog("Digite o " + (i + 1) + "º nome");
        }
        for (int i = 0; i < tamanho; i++) {
            if (maior < nomes[i].length()) {
                maior = nomes[i].length();
                indicepalavra = i;
            }
        }
        JOptionPane.showMessageDialog(null, nomes[indicepalavra]);
    }
}

Abração 8)
Max

Show de bola agradeço!

Criado 6 de setembro de 2010
Ultima resposta 6 de set. de 2010
Respostas 4
Participantes 3