Carina Posted December 5, 2020 at 06:15 PM Report Share #620571 Posted December 5, 2020 at 06:15 PM (edited) Programa em java que lê um texto inserido pelo utilizador e conta o número de letras. (Utilizar ciclo while) Exemplo de um programa que fiz que conta palavras : Scanner teclado = new Scanner(System.in); String palavra = ""; int contapalavras = 0; System.out.println("Escreva um texto, usa stop para terminar "); do { palavra = teclado.next(); palavra.toUpperCase(); contapalavras++; //if } while (!palavra.equals("STOP")); contapalavras --; System.out.println("li" + contapalavras + "palavras"); teclado.close(); } Edited December 5, 2020 at 06:21 PM by Carina Link to comment Share on other sites More sharing options...
Rui Carlos Posted December 6, 2020 at 02:33 PM Report Share #620574 Posted December 6, 2020 at 02:33 PM Qual é exactamente a dúvida? Com base nesse programa, essencialmente precisas de substituir o contapalavras++ por algo que some o número de letras de palavra (e o contapalavras-- também precisa de uma ligeira modificação). Rui Carlos Gonçalves Link to comment Share on other sites More sharing options...
thoga31 Posted December 7, 2020 at 12:07 AM Report Share #620580 Posted December 7, 2020 at 12:07 AM (edited) Antes de mais, gostaria de fazer um apontamento. O método toUpperCase() não modifica a própria instância de uma String. Este método devolve uma nova String com as letras da original capitalizadas. O resultado deve ser armazenado. Posto isto, algumas considerações: O método next() da classe Scanner devolve uma String, pelo que podemos aplicar directamente o método toUpperCase(): palavra = teclado.next().toUpperCase(); A classe String disponibiliza o método split(), o qual recebe uma expressão regular e devolve um array com as strings separadas segundo a regex. Exemplo: String[] partes = "Batatas:com:azeite".split(":"); // irá produzir o array {"Batatas", "com", "azeite"} Tendo em conta o ponto anterior, e sabendo que um array tem a propriedade length, podemos determinar directamente o tamanho do array sem o guardar em memória: int n = "Batatas:com:azeite".split(":").length; // irá devolver 3 Estes são os ingredientes para a solução ao vosso problema, @Carina e @Lucas. Se for um exercício académico, confiram se podem usar o método split(). Cumprimentos. Edited December 7, 2020 at 12:08 AM by thoga31 Gafes ortográficas 1 Report Knowledge is free! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now