Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
WF-1000X M6 è la sesta generazione di auricolare in-ear sviluppata da Sony, un prodotto che punta a coniugare facilità di utilizzo con una elevata qualità di riproduzione dei contenuti audio e una cura nella riduzione del rumore ambientale che sia da riferimento
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake ha presentato diverse novità per la sua piattaforma legate all'intelligenza artificiale. Quella forse più eclatante è una collaborazione con OpenAI, ma non mancano diverse nuove funzionalità che rendono la piattaforma più flessibile e in grado di rispondere meglio alle esigenze in continuo cambiamento delle aziende
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 11-01-2015, 11:56   #1
el922
Junior Member
 
Iscritto dal: Jan 2015
Messaggi: 6
[java]calcolatrice

Salve a tutti sono alle rpime armi con java e sono incappata in questo 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

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();
         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?
grazie a tutti per la risposta
el922 è offline   Rispondi citando il messaggio o parte di esso
Old 11-01-2015, 12:23   #2
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2787
Negli if controlli se f vale "+" o "-" e poi tenti di convertire quel valore ("+" o "-") in intero... Semplicemente non ha senso!
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 11-01-2015, 12:28   #3
deadbeef
Senior Member
 
L'Avatar di deadbeef
 
Iscritto dal: Jun 2014
Messaggi: 3753
Stai cercando di convertire '+' in un intero, cosa che ovviamente ti da errore. Quell'operazione va eseguita sul carattere successivo all'operatore, ammesso che sia un numero (se faccio 1+a non funziona, per esempio)
deadbeef è offline   Rispondi citando il messaggio o parte di esso
Old 11-01-2015, 16:44   #4
el922
Junior Member
 
Iscritto dal: Jan 2015
Messaggi: 6
ciao grazie a tutti per le risposte ho riprovato a rifarlo così:
Codice:
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
String numeri=sc.nextLine();
StringTokenizer st = new StringTokenizer(numeri," ");
 String f=st.nextToken();
 int a=Integer.parseInt(f);

int somma=0;
while(st.hasMoreTokens()){
		a=Integer.parseInt(f);
        int prec=a;
        f=st.nextToken();
        if(f.equals("+")){
			f=st.nextToken();
			a=Integer.parseInt(f);
			a=prec+a;
		}else 
			f=st.nextToken();
			a=Integer.parseInt(f);
			a=prec-a;
			
	}
         

        System.out.println(a);

}
}
adesso il compilatore non mi fà più errore solo che non mi prende il primo token perchè?
el922 è offline   Rispondi citando il messaggio o parte di esso
Old 11-01-2015, 16:47   #5
deadbeef
Senior Member
 
L'Avatar di deadbeef
 
Iscritto dal: Jun 2014
Messaggi: 3753
Perchè fai 2 st.nextToken() , uno fuori dal ciclo while e l'altro dentro, quindi alla prima esecuzione sei già sul secondo token anzichè sul primo
deadbeef è offline   Rispondi citando il messaggio o parte di esso
Old 11-01-2015, 17:19   #6
el922
Junior Member
 
Iscritto dal: Jan 2015
Messaggi: 6
Grazie sei un angeloooooooooo! Era da due giorni che che provavo e riprovavo a farlo il procedimento è un pò contorto però viene tutto
el922 è offline   Rispondi citando il messaggio o parte di esso
Old 11-01-2015, 17:40   #7
deadbeef
Senior Member
 
L'Avatar di deadbeef
 
Iscritto dal: Jun 2014
Messaggi: 3753
ottimo
deadbeef è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Computer personalizzati venduti senza RA...
ARC Raiders ha sfiorato il milione di ut...
Galaxy S25 12GB/512GB al minimo storico,...
Roscosmos ha lanciato il satellite meteo...
Starship Troopers: Ultimate Bug Wars, to...
Il razzo spaziale europeo Ariane 6, per ...
Oracle Fusion Cloud Applications si pote...
OHB Italia svilupperà un satellit...
Fortinet: "Ora abbiamo una chance d...
Linux Mint chiude con gli aggiornamenti ...
Compressori portatili auto in sconto su ...
Durante il lancio della missione USSF-87...
Dopo il ritiro di Intel da Magdeburgo, l...
Xiaomi 15T scende a 388€ su Amazon: 12GB...
MSI Afterburner: arriva il monitoraggio ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 08:27.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v