Execução em Terminal

Achei esse exemplo muito loco, na minha opinião, ele fecha o class antes de terminar:

class xy { public static void main (String args []) { if (args.length == 2) { System.out.println("Resultado = " + soma (args[0], args[1])); }else { System.out.println("Entre com dois valores inteiros"); } } } public static int soma (String num1, String num2) { int x=0, y=0; try { x = Integer.parseInt(num1); y = Integer.parseInt(num2); }catch (NumberFormatException e) { System.out.println("Digite apenas caracteres numéricos"); System.exit (0); return (x + y); } }

Dá erro na linha 10 pedindo um class, porque o de cima já está fechado, aí tentei fechar só no final e também não deu, o que eu faço???

bom ai é falta de analise sua…

o class xy esta sendo fechado na linha 9…
entao o metodo “soma” esta fora da classe…
apague a linha 9…
e coloque o “}” na linha 21

depois disso vai dar um erro… pedindo um return do INT…

esse eu deixo com vc…
Dica: o Return deve acontecer de qualquer forma dentro de um metodo (q exige um retorno)…

no caso esta apenas retornando se der Catch… vc precisa fazer algo que retorne um INT de qualquer maneira

Bom era esse o exemplo que estava na apostila, como eu falei muito loco, porque fechava o class antes de acabar, isso eu vi, analisei e postei…

…Também postei que já tentei fechar no final e que dava um erro, que é esse que você mencionou do return do INT e foi esse erro que eu pedi ajuda…, pois eu não sei e nessa apostila (que não serve pra muita coisa) não explica como faz.

Mas deixe comigo.

Pessoal aproveitando o tópico e eu estou montando uma tela que faz contagem do caracteres!!! Usando na contagem de bytes a função length!!! ate ai tudo bem! Mas eu tentei fazer umas ganbiarras para fazer a contagem de bits também mas não deu certo pois não esta recebendo a frase!!!
Alguém ai ajuda
vlw agradeço desde jah
o erro da na linha 11

[code]import javax.swing.JOptionPane;

class texto {
public static void main (String args[]) {
String frase;
String bits;
int totbits;
frase = JOptionPane.showInputDialog(null, “Digite uma Frase”,“Contagem de Bytes e Bits”, JOptionPane.PLAIN_MESSAGE);
JOptionPane.showMessageDialog(null, "O número de Bytes é " + frase.length());
bits = frase.length();
int bitsa = Integer.parseInt(bits);
totbits = bitsa*8;
JOptionPane.showMessageDialog(null, "O número de Bits é " + totbits);
}
}
[/code]

bits foi declarada como uma variavel do tipo String…
ela esta recebendo uma INT do metodo frase.length();

entao nao são compativeis… =)

para arrumar vc precisa fazer um CAST para String…
ou simplesmente colocar ’ +"" ’

exemplo
bits = frase.length()+"";

Eu modifiquei a declaração de bits para Int;
mas agora da erro na linha de baixo!!!
achei que não teria problema pois a frase foi declarada string e bits estaria recebendo a frase para depois fazer a conversão!!!
e agora???
vlw

Ops não vi o resto da tua mensagem!!!
fiz as modificações agora da erro na conversão e no + acho que vou precisar fazer este cast???

tem variaveis inuteis ai…

vamos rever…

praq a variavel String bits ?

ela nao tem utilidade…

entao vc pode deletar a linha 7 e 11

e mudar a linha 12

de:
int bitsa = Integer.parseInt(bits);
para:
int bitsa = frase.length();

Vlw alucardeck deu certo feito entaum !!!
brigado agora nas aulas de Introdução de Processamento de Dados da pra testa essa telinha!!!

vlw

achei que teria de receber a frase pra depois converter mas era inútil!!!

heheh rlx…

no caso vc jah declarou uma String chamada “frase”…
entao nao existiria nenhum motivo pra vc fazer uma copia dela =)

e como o metodo .length retorna uma INT… vc pode passar direto pra ela, sem problemas…

Sim sim agora concordo totalmente!!!
é que antes havia dado um erro ao passar direto pra ela!
Dava erro na conversão, mas devia ser apenas um erro na hora da digitação
vlw

Muito legal isso para contar Bytes e bits, mas depois de todas alterações no fim já que você tirou uma variável, também daria de tirar a váriavel int bitsa e ficaria assim:

[code]import javax.swing.JOptionPane;

class texto {
public static void main (String args[]) {
String frase;
int totbits;
frase = JOptionPane.showInputDialog(null, “Digite uma Frase”,“Contagem de Bytes e Bits”, JOptionPane.PLAIN_MESSAGE);
JOptionPane.showMessageDialog(null, "O número de Bytes é " + frase.length());
totbits = frase.length()*8;
JOptionPane.showMessageDialog(null, "O número de Bits é " + totbits);
}
}[/code]
Dá para fazer direto a multiplicação do frase.length(), mas tá certo, só para mostrar que tem vários caminhos para isso…
Vlw…

Ou ainda:

import javax.swing.JOptionPane; class texto { public static void main (String args[]) { String frase = JOptionPane.showInputDialog(null, "Digite uma Frase","Contagem de Bytes e Bits", JOptionPane.PLAIN_MESSAGE); JOptionPane.showMessageDialog(null, "O número de Bytes é " + frase.length()); JOptionPane.showMessageDialog(null, "O número de Bits é " + frase.length()*8); } }