Ciao a tutti sto imparando da poco il linguaggio java e sono incappata in un problema :
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

Ho scitto il programma:

codice:
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();
         int n=Integer.parseInt(f);
       if(f.equals("+")){
          somma=somma+n; 
       }else if(f.equals("-")){
       somma=somma-n; 
   }
}
System.out.println(somma);
}
}
Perchè come output mi preleva solo il primo numero. Sembrerà banale ma sono in crisi