Pessoal, to com um problemao. Recebi o seguinte trabalho:
Escreva uma aplicacao java que ira fazer o seguinte:
a. O usuario ira digitar o nome do arquivo.
b. Ira abrir o arquivo e ler o texto dentro.
c. Ira contar as letras, palavras (palavras sao separadas por espacos em branco) e sentencas do arquivo.
d. O programa ira imprimir o numero de letras, palavras e sentencas do arquivo e ira mostrar a media de numero de letras por palavra e a media de palavras por sentenca.
e. Para fazer os pedidos acima, escreve os seguintes metodos:
i. Escreva um metodo value-returning que ira receber um unico char e ira retornar um valor boolean indicando se o argumento eh ou nao uma letra.
ii. Escreva um metodo value-returning que ira receber um unico string e ira retornar um valor int indicando o numero de letras na string. Esse metodo devera chamar o metodo acima (i).
iii. Escreva um metodo value-returning que ira receber um argumento string e ira retornar um valor boolean indicando se o string eh o final da sentenca. Para o proposito desse programa, todas as sentencas irao terminar com ponto, exclamacao ou interrogacao.
iv. Escreva um metodo main que ira chamar os metodos ii e iii e ira finalizar o objetivo do programa (de c e d). Note que as palavras precisam ter pelo menos uma letra.
Basicamente se eu fizer o i. e o iv. funcionando para o i. eu acho que consigo finalizar o resto. Mas estou tendo problemas pra terminar eles.
O maximo que cheguei na resolucao i. e iv. :
http://pastebin.com/m3748d32c
Os problemas:
-Terminar o metodo isLetter. Nao sei como fazer pra retornar positivo caso seja uma palavra inves de numero. (Nao posso usar try/catch)
-Ler cada caractere, um de cada vez do scanner inputStream. Se fosse um arquivo com numeros eu poderia usar:
letter = inputStream.nextInt;
porem nao existe nextChar, como eu tentei fazer no programa do link acima.