Bom dia, estou com um problema aqui, vou postar o código abaixo e explicarei abaixo do código.
[code]public class Ex03 {
public static void main (String[] args) {
for (int ex=0; ex<args.length; ex++){
System.out.println(args[ex]+"\t"+args[ex].length());
int ex2 += args[ex].length();
System.out.println("A soma dos caracter:"+ex2);
}
}
}[/code]
Eu informo uma frase dentro da String args, na hora que vou compilar no prompt eu informo, ex : java Arquivo Minha vida
e dae eu tenho que exibir em linha assim:
Minha 5
vida 4
isso eu consegui, que é exibir a frase em linhas e quantos caracter cada palavra tem, mais o problema vem a seguir, eu tenho que somar todos os caracteres, ali ficaria 5+4=9.
[code]public class Ex03 {
public static void main (String[] args) {
for (int ex=0; ex<args.length; ex++){
System.out.println(args[ex]+"\t"+args[ex].length());
int ex2 += args[ex].length();
System.out.println("A soma dos caracter:"+ex2);
}
}
} [/code]
vamos lá!
eu nao sei se vai te resolver mas acredito que como vc so quer mostrar a soma dos caracteres no final do arquivo esse segundo system.out deve ser colocado apos o for… com isso sua variavel deve tem que ser declarada antes do for senao nao funfa tambem!!
ficou assim depois das mudanças, veja se roda e me de retorno aqui no forum
[code]public class Ex03 {
public static void main (String[] args) {
int ex2=0;
for (int ex=0; ex<args.length; ex++){
System.out.println(args[ex]+"\t"+args[ex].length());
ex2 += args[ex].length();
}
acho melhor usar string mesmo, tem muitos metodos bons para contar variaveis, ou letras, etc. tenho um jogo de forca que faz algo parecido. ja postei aqui no guj.
/* Codifique a classe em Java que
* contenha um metodo chamado mexeNaString() que
* deverá ler uma string não nula e não vazia via JOP;
* escrever o tamanho da string;
* mostrar o primeiro caracter e o último caracter da string em maiuscula e minuscula
* Deverá retornar a string lida para o método main() que deverá escreve-la.
*/
import javax.swing.*;
class Metodo2
{
public static String mexeNaString()
{
String s="", s_aux="";
do
{
s = JOptionPane.showInputDialog( null, "Digite um literal: " ,
"Leitura do Literal" , JOptionPane.QUESTION_MESSAGE );
} while ( s == null || s.equals("")); // nao poderá cancelar
JOptionPane.showMessageDialog( null, "Tamanho da string: " + s.length() , "Resultado" ,
JOptionPane.INFORMATION_MESSAGE);
s_aux=s.toUpperCase();
JOptionPane.showMessageDialog( null, "em Maiúsculas: \nprimeiro caracter: " + s_aux.charAt(0)
+ "\núltimo caracter: " + s_aux.charAt(s_aux.length() - 1),
"Resultado" , JOptionPane.INFORMATION_MESSAGE);
s_aux=s.toLowerCase();
JOptionPane.showMessageDialog( null, "em minúsculas: \nprimeiro caracter: " + s_aux.charAt(0)
+ "\núltimo caracter: " + s_aux.charAt(s_aux.length() - 1),
"Resultado" , JOptionPane.INFORMATION_MESSAGE);
return s; // retorna a string lida para o metodo que chamou
}
public static void main(String args[])
{
String s;
s = mexeNaString();
JOptionPane.showMessageDialog( null, "String lida: " + s , "Resultado" ,
JOptionPane.INFORMATION_MESSAGE);
}
}