Preciso calcular o tanto de caracteres de uma frase, separados por “-”.
Por exemplo: Java é difícil >>> saída: 4-1-7
E preciso mostrar a maior palavra dentre todas.
O que eu fiz:
import java.util.Scanner;
public class ContandoCaractere {
public static void main(String[] args) {
Scanner sc = new Scanner (System.in);
String[] nomes = new String[2];
int maior = 0;
int indicepalavra=0;
int tamanho = nomes.length;
for (int i = 0; i < tamanho; i++) {
System.out.println("Digite o " + (i + 1) + “º nome”);
nomes[i] = sc.nextLine();
}
for (int i = 0; i < tamanho; i++) {
if (maior < nomes[i].length()) {
maior = nomes[i].length();
indicepalavra = i;
}
}
System.out.println("O maior nome é: " +nomes[indicepalavra]);
}
}
Use o método split() e o replaceAll();
String frase = “Java é dificil”;
String frase_formatada = frase.replaceAll(" “, “-”);
int maior = 0;
String maiorPalavra;
String [] palavras = fase_formatada.split(”-");
for(int i = 0; i < palavras.lenght; i++){
int tamanho = palavras[i].lenght;
if(tamanho > maior){
maiorPalavra = palavras[i];
maior = tamanho;
}
system.out.println(maiorPalavra);
Utilize o split a aí obtenha a maior palavra a partir do array obtido.
Exemplo:
import java.util.Scanner;
public class ContandoCaractere {
public static void main(String[] args) {
ContandoCaractere programa = new ContandoCaractere();
programa.executar();
}
public void executar() {
Scanner scanner = new Scanner(System.in);
System.out.println("Digite a frase:");
String frase = scanner.nextLine();
String[] palavras = frase.split("\\s");
String maiorPalavra = obterMaiorPalavra(palavras);
System.out.println("A maior palavra é: " + maiorPalavra);
}
private String obterMaiorPalavra(String[] palavras) {
String maiorPalavra = palavras[0];
for (int i = 1; i < palavras.length; i++) {
if (palavras[i].length() > maiorPalavra.length()) {
maiorPalavra = palavras[i];
}
}
return maiorPalavra;
}
}
E como eu faço para aumentar a quantidade de frases recebidas nesse programa? Linha por linha. Pq eu só consigo digitar uma…