Ver maior palavra em String e etc

9 respostas
D

Boas!

Precisava de ajuda para fazer um programa que lê-se uma linha String e apresentasse depois o seguinte:

-> a maior palavra (considerando a ordem alfabética) e a sua posição relativa (começando

em 1) dentro da linha de texto;

-> a palavra com maior número de caracteres e a sua posição relativa dentro da linha de

texto;

-> a linha que resulta da inversão da ordem das palavras da linha de texto original, isto é, a

última palavra passa a ser a primeira, a penúltima passa a ser a segunda, e assim

sucessivamente.

Obrigado

9 Respostas

R

vc jah fex alguma parte desse codigo ou ker q facamos do zero?

D
import java.util.Scanner;

public class maiorpalavra {

public static void main(String[] args)

{

Scanner s=new Scanner (System.in);

String s = " ";

int imenor=0;

int imaior=0;

System.out.println(Introduza a frase);

s = s.nextLine();
String quebra[] = s.split(" ");  
    
  for ( int i = 0 ; i < quebra.length ; i++ ) {  
     if ( quebra[i].length() < quebra[imenor].length() ) {  
        imenor = i;  
     }  
     if ( quebra[i].length() > quebra[imaior].length() ) {  
        imaior = i;  
     }  
       
  }  
    
  System.out.println("N palavras "+quebra.length );  
  System.out.println("Maior palavra "+quebra[imaior] );  
  System.out.println("Menor palavra "+quebra[imenor] );

}
}

Eu tinha isto…Mas n faz bem o k quero…Sem contar que este n ta a correr pk tem de ser com uma frase ja definida e sem ser o utilizador a introduzir…

R

hmm entendi oq vc ker, deixa eu ler aki rapidao e mando pra vc :smiley:

D

Ok…Obrigado…Eu também nao tenho pressa :slight_smile:

J

Boas,

Eu estou a fazer o mesmo programa e só consegui ainda fazer uma parte :? . Se nao te importasses poderias me dizer como fizeste? Só para eu ver se percebo, pk nao faço mesmo ideia de como acabar… brigada pela ajuda. :smiley:

H

A maior palavra, vc pode usar um array de int para receber o valor do tamanho das palavrasusando size ou lenght e tem um método acho que é math.max() que verifica qual é maior. E depois fazer um loop para ordenar da forma que vc quiser.

H

A respeito da inversão da ordem, se vc estiver utilizando um ArrayList eu acho q existe uma forma...

import java.util.ArrayList;
import java.util.Collections;

public class NewClass{
  public static void main(String[] args){
   
     // cria uma ArrayList que conterá strings
    ArrayList<String> nomes = new ArrayList<String>();

    // adiciona itens na lista
    nomes.add("Phillipe");
     nomes.add("Phelps");
      nomes.add("Fulano");
       nomes.add("Beltrano");
        nomes.add("Siclano");
         nomes.add("Talbete");

    // exibe os nomes da ArrayList
     for(int i = 0; i < nomes.size(); i++)
      System.out.println(nomes.get(i));


    // Acredito que isso vai inverter a ordem
    Collections.reverse(nomes);

    // exibe os nomes da ArrayList
    System.out.println();
    for(int i = 0; i < nomes.size(); i++)
      System.out.println(nomes.get(i));

    System.exit(0);
  }
}
H

Faça com que o ArrayList receba cada palavra de sua frase em uma posição diferente, e utilize o exemplo q passei, sem o:

Collections.reverse(nomes);

Não funcionar, tente usar:

Collections.shuffle(nomes);
N

boas, ja sabem fazer? eu so consigo tirar a maior palavra e inverter a frase mas n consigo tirar a palavra maior alfabeticamente

Criado 17 de novembro de 2009
Ultima resposta 23 de nov. de 2009
Respostas 9
Participantes 5