Deve existir uma maneira de sublinhar as letras em java.
Anyway podes sempre tentar da seguinte forma.
Se tiveres guardada numa String a palavra ou texto.
Guardas num Scanner essa String por exemplo:
PHP:
import java.util.Scanner;
Scanner leitor = new Scanner(String);
Arranjas uma variável auxiliar para contar o numero de palavras existentes:
Depois, a classe Scanner dispõe de um metodo para next token, isto é, enquanto há caracteres, neste caso, enquanto à palavras:
PHP:
while (leitor.hasNext()) { // Enquanto houver palavras
leitor.next();
nWords++;
}
Fechas o fluxo, leitor.close();
--------
Arranjas um vector de Strings para em cada posição guardar uma palavra:
PHP:
String[] vecWords = new String[nWords];
E agora preenches cada posicao do vector com as palavras:
PHP:
Scanner leitor = new Scanner(String); // Palavras ou texto
int i = 0; // posicao
while(leitor.hasNext()) {
vecWords[i] = leitor.next();
}
Tens o teu vector com palavras.
Agora para os traços, podes sempre escrever os traços na linha seguinte, por exemplo:
PHP:
int pos = 0; // cada palavra
While(pos < vecWords.length) {
for (int i = 0; i < vecWords[pos].length; i++)
System.out.print(vecWords[pos].charAt(i))
System.out.println();
for (int i = 0; i < vecWords[pos].length; i++)
System.out.print("_" + " ");
pos++;
}
leitor.close();
Em detrimento do Scanner, a classe String dispõe de um metodo Split que cria logo uma array com as palavras, mas eu sou fã do Scanner.
O algoritmo está para lá de eficiente, e nem testei sequer, mas pode ser que ajude a realizar o problema.
Cumps