Programa que calcula quantidade de caracteres

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…