el922
11-01-2015, 10:56
Salve a tutti sono alle rpime armi con java e sono incappata in questo problema:cry:
scrivi un programma che calcoli la somma e la differenza di n numeri inseriti da terminale;
i numeri e gli operatori sono separati tra di loro da uno o più spazi.
es: 1 + 3 - 4 + 12 + 2 - 10 - 1
e va stampato:3
import java.util.StringTokenizer;
import java.util.Scanner;
class Calcolatore{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
String numeri=sc.nextLine();
StringTokenizer st = new StringTokenizer(numeri," ");
int somma=0;
while(st.hasMoreTokens()){
String f=st.nextToken();
if(f.equals("+")){
int n=Integer.parseInt(f);
somma=somma+n;
}else if(f.equals("-")){
int n=Integer.parseInt(f);
somma=somma-n;
}
}
System.out.println(somma);
}
}
So che sbaglio nel ciclo while ma non capisco dove! Il compilatore mi dà l'ellorre di NumberFormatException per il + perche? :cry:
grazie a tutti per la risposta
scrivi un programma che calcoli la somma e la differenza di n numeri inseriti da terminale;
i numeri e gli operatori sono separati tra di loro da uno o più spazi.
es: 1 + 3 - 4 + 12 + 2 - 10 - 1
e va stampato:3
import java.util.StringTokenizer;
import java.util.Scanner;
class Calcolatore{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
String numeri=sc.nextLine();
StringTokenizer st = new StringTokenizer(numeri," ");
int somma=0;
while(st.hasMoreTokens()){
String f=st.nextToken();
if(f.equals("+")){
int n=Integer.parseInt(f);
somma=somma+n;
}else if(f.equals("-")){
int n=Integer.parseInt(f);
somma=somma-n;
}
}
System.out.println(somma);
}
}
So che sbaglio nel ciclo while ma non capisco dove! Il compilatore mi dà l'ellorre di NumberFormatException per il + perche? :cry:
grazie a tutti per la risposta