Alguem pode me dizer porque acontece esse erro?

2 respostas
T

Pessoal, estou escrevendo esse código referente ao exercicio abaixo:
8) Escreva uma aplicação que receba três argumentos que, em ordem, correspondem sempre a: um valor inteiro, um operador (+, -, * ou /) e um segundo valor inteiro. A aplicação deve imprimir o resultado da operação.

public class Exercicio08 {
	public static void main(String[] args) {
		
		int numero1 = Integer.parseInt(args[0]);
		char operacao = args[1].charAt(0);
		int numero2 = Integer.parseInt(args[2]);
		double resultado;
		
		switch (operacao) {
		case '+':
			resultado = numero1 + numero2;
			System.out.println("A soma e : " + resultado);
			break;
		case '-':
			resultado = numero1 - numero2;			
			System.out.println("A subtracao e : " + resultado);
			break;
		case '*':
			resultado = numero1 * numero2;	
			System.out.println("O produto e : " + resultado);
			break;
		case '/':
			resultado = (double)(numero1 / numero2);
			System.out.println("A divisao e : " + resultado);
			break;
		default:
			System.out.println("Caractere Inválido!");
			break;
		}
		
	}
}

e quando tento executar o produto ('*') é apresentado o seguinte erro :
Exception in thread "main" java.lang.NumberFormatException: For input string: ".
project"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at Exercicio08.main(Exercicio08.java:7)

Como posso corrigir isso ?

2 Respostas

Alexandre_Gazola

Parece que o asterisco (*) significa os nomes de todos os arquivos do diretório corrente.

Se vc colocar o código, passando 2 * 4:

for (String s : args) {

System.out.println(s);

}

É impresso (no Eclipse)
2
.classpath
.project
Exercicio08.class
Exercicio08.java
4

Use, então, o ponto (.) para significar a multiplicação.

abraço

fabiel

Aew brother tranquilo ?!

Então cara,

int numero1 = Integer.parseInt(args[0]);
 		char operacao = args[1].charAt(0);
 		int numero2 = Integer.parseInt(args[2]);
 		double resultado;
 		
 		switch (operacao) {
 		case '+':

agora fica assim

int numero1 = Integer.parseInt(args[0]);
 		String x = args[1]; //aqui pega o argumento
 		char operacao[] = x.toCharArray(); //aqui transforma - o em char
 		int numero2 = Integer.parseInt(args[2]);
 		double resultado;
 		 		
 		switch (operacao[0]) {

Espero q tenha o ajudado !! :idea:

Criado 24 de março de 2007
Ultima resposta 24 de mar. de 2007
Respostas 2
Participantes 3