Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Mate X7 rinnova la sfida nel segmento dei pieghevoli premium puntando su un design ancora più sottile e resistente, unito al ritorno dei processori proprietari della serie Kirin. L'assenza dei servizi Google e del 5G pesa ancora sull'esperienza utente, ma il comparto fotografico e la qualità costruttiva cercano di compensare queste mancanze strutturali con soluzioni ingegneristiche di altissimo livello
Nioh 3: souls-like punitivo e Action RPG
Nioh 3: souls-like punitivo e Action RPG
Nioh 3 aggiorna la formula Team NINJA con aree esplorabili più grandi, due stili di combattimento intercambiabili al volo (Samurai e Ninja) e un sistema di progressione pieno di attività, basi nemiche e sfide legate al Crogiolo. La recensione entra nel dettaglio su combattimento, build, progressione e requisiti PC
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti
La facilità di installazione e la completa automazione di tutte le fasi di utilizzo, rendono questo prodotto l'ideale per molti clienti. Ecco com'è andata la nostra prova in anteprima
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 12-08-2008, 18:37   #1
luxorl
Senior Member
 
L'Avatar di luxorl
 
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
[Java] StreamTokenizer impostarlo per...

Ciao a tutti,
è possibile impostare uno StreamTokenizer in modo che riesca a separare i token riconoscendo come separatori le quattro operazioni più le tonde
Quote:
( + - * / )
e in modo che restituisca anche queste come token?

Con uno StringTokenizer basta usare il costruttore:

Quote:
StringTokenizer(String str, String delim, boolean returnDelims)
praticamente vorrei il risultato di questo costruttore:
Codice:
StringTokenizer st=new StringTokenizer(in, "*-/+()", true);
però con lo StreamTokenizer. E' possibile?

Non uso lo StringTokenizer perché ho problemi poi a capire se il token è un numero o una Stringa, mentre con lo StreamTokenizer si può agevolmente distinguere il tipo di token tramite le costanti TT_WORD e TT_NUMBER

Potete aiutarmi?
__________________

Ultima modifica di luxorl : 12-08-2008 alle 18:40.
luxorl è offline   Rispondi citando il messaggio o parte di esso
Old 12-08-2008, 18:59   #2
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
Quote:
Originariamente inviato da luxorl Guarda i messaggi
Ciao a tutti,
è possibile impostare uno StreamTokenizer in modo che riesca a separare i token riconoscendo come separatori le quattro operazioni più le tonde e in modo che restituisca anche queste come token?

Con uno StringTokenizer basta usare il costruttore:



praticamente vorrei il risultato di questo costruttore:
Codice:
StringTokenizer st=new StringTokenizer(in, "*-/+()", true);
però con lo StreamTokenizer. E' possibile?

Non uso lo StringTokenizer perché ho problemi poi a capire se il token è un numero o una Stringa, mentre con lo StreamTokenizer si può agevolmente distinguere il tipo di token tramite le costanti TT_WORD e TT_NUMBER

Potete aiutarmi?
Ciao Luxorl,

nel mio sito puoi scaricare un analizzatore lessicale per espressioni aritmetiche.
É in linguaggio C ma puoi facilmente fare il porting su Java.
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
Old 13-08-2008, 09:59   #3
luxorl
Senior Member
 
L'Avatar di luxorl
 
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
Quote:
Originariamente inviato da Vincenzo1968 Guarda i messaggi
Ciao Luxorl,

nel mio sito puoi scaricare un analizzatore lessicale per espressioni aritmetiche.
É in linguaggio C ma puoi facilmente fare il porting su Java.
Ti ringrazio ma vorrei affrontare il problema come detto sopra.
Nessuno sa se è possibile impostare lo StreamTokenizer in quel modo?
__________________
luxorl è offline   Rispondi citando il messaggio o parte di esso
Old 13-08-2008, 17:41   #4
luxorl
Senior Member
 
L'Avatar di luxorl
 
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
Alla fine non riuscendo ad impostare lo StreamTokenizer ho usato lo StringTokenizer creando un trucchetto per riconoscere se il token è una costante (numero) o una variabile. Vi incollo il codice del metodo che riconosce i simboli. Ditemi cosa ne pensate e se secondo voi è o no una buona soluzione. Grazie

Codice:
		public int prossimoSimbolo() {
		if(!input.hasMoreTokens()){ //Fine Stringa
			simbolo=END;
		}else{
			this.token=input.nextToken();
			if(token.equals("+")){ simbolo=ADD; }
			else if(token.equals("-")){ simbolo=MIN; }
			else if(token.equals("*")){ simbolo=MUL; }
			else if(token.equals("/")){ simbolo=DIV; }
			else if(token.equals("(")){ simbolo=TONDA_APERTA; }
			else if(token.equals(")")){ simbolo=TONDA_CHIUSA; }
			
			/* Sfrutto il l'eccezione NumberFormatException per riconoscere
			 * se il token è una Stringa o un numero.
			 */			
			else try{
				Integer.parseInt(token); 					//se parseInt non solleva eccezione
				simbolo=COSTANTE;							// il token è un numero quindi simbolo = costante
			}catch(NumberFormatException e){
				try{
					Integer.parseInt(""+token.charAt(0));	//se l'eccezione viene sollevata e il primo char del token è una Stringa
					simbolo=TOKEN_INVALIDO;					//allora Simbolo è sicuramente una variabile.
				}catch(NumberFormatException e2){			//se invece il primo char è un numero ma non si è passato il primo controllo 
					simbolo=VARIABILE;						//vuol dire che c'è un errore di sintassi del tipo token="1a" o token="12pd" ecc.																					
				}
			}		
		
		}//else
		
		return simbolo;	
		
	}//prossimoSimbolo

NB: una variabile deve per forza iniziare con una lettera e può essere seguita da zero o più numeri/lettere. Una variabile non può iniziare con un numero.
__________________

Ultima modifica di luxorl : 13-08-2008 alle 17:45.
luxorl è offline   Rispondi citando il messaggio o parte di esso
Old 14-08-2008, 08:09   #5
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
Distingue il meno unario da quello binario?
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
Old 14-08-2008, 10:08   #6
luxorl
Senior Member
 
L'Avatar di luxorl
 
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
Quote:
Originariamente inviato da Vincenzo1968 Guarda i messaggi
Distingue il meno unario da quello binario?
La traccia del problema definisce la seguente grammatica:

Codice:
<espressione>::=<termine>{<addop><termine>}
<termine>::=<fattore>{<mulop><fattore>}
<fattore>::=<costante>|<variabile>|(<espressione>)
<costante>::=<interosenzasegno>
<variabile>::=<identificatore>
<interosenzasegno>::=<cifra>{<cifra>}
<identificatore>::=<lettera>{<lettera>|<cifra>}
<cifra>::=0|…|9
<lettera>::=a|…|z|A|…|Z
<addop>::=+|-
<mulop>::=*|/
Le costanti sono definite come intero senza segno... penso di poter trascurare in questo caso il meno unario no?
__________________
luxorl è offline   Rispondi citando il messaggio o parte di esso
Old 14-08-2008, 18:18   #7
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
Quote:
Originariamente inviato da luxorl Guarda i messaggi
La traccia del problema definisce la seguente grammatica:

Codice:
<espressione>::=<termine>{<addop><termine>}
<termine>::=<fattore>{<mulop><fattore>}
<fattore>::=<costante>|<variabile>|(<espressione>)
<costante>::=<interosenzasegno>
<variabile>::=<identificatore>
<interosenzasegno>::=<cifra>{<cifra>}
<identificatore>::=<lettera>{<lettera>|<cifra>}
<cifra>::=0|…|9
<lettera>::=a|…|z|A|…|Z
<addop>::=+|-
<mulop>::=*|/
Le costanti sono definite come intero senza segno... penso di poter trascurare in questo caso il meno unario no?
Si, data quella grammatica, puoi benissimo trascurare il meno unario.

Ciao
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
Old 07-08-2012, 20:02   #8
jcarcarazza
Junior Member
 
Iscritto dal: Aug 2012
Messaggi: 3
richiesta

luxorl per caso ti ritrovi ancora questo progetto delle espressioni aritmetiche? Se è possibile vorrei vederlo perchè ne sto facendo uno simile e ci sono delle cose che vorrei chiarire.
jcarcarazza è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


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
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti Test in super anteprima di Navimow i220 LiDAR: i...
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto Dark Perk Ergo e Sym provati tra wireless, softw...
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
Vodafone annuncia la dismissione di un s...
Stiga lancia i nuovi robot tagliaerba co...
Bullismo e cyberbullismo, Keenetic lanci...
Con AI Skills Checker Bitdefender mette ...
E-bike giapponese con 1.000 km di autono...
Un eVTOL con cui basta saper andare in b...
Dal mercato cinese al mondo: HONOR firma...
Sovranità digitale: l'UE sperimen...
Accesso alla memoria su Windows 11 solo ...
iPhone 18 Pro Max con batteria da oltre ...
Windows 11, cali di prestazioni sulle GP...
Un altro iPhone economico è in arrivo a ...
The Grand Tour 2026: ecco chi saranno i ...
Dai display alle soluzioni: Samsung tra ...
Ruba gli account Snapchat di quasi 60 do...
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: 16:57.


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