Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Nothing Phone (4a) Pro cambia pelle: l'alluminio unibody sostituisce la trasparenza integrale, portando una solidità inedita. Sotto il cofano troviamo uno Snapdragon 7 Gen 4 che spinge forte, mentre il display è quasi da top dig amma. Con un teleobiettivo 3.5x e la Glyph Matrix evoluta, è la prova di maturità di Carl Pei. C'è qualche compromesso, ma a 499EUR la sostanza hardware e la sua unicità lo rendono un buon "flagship killer" in salsa 2026
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro
Con Midnight, Blizzard tenta il colpaccio: il player housing sbarca finalmente su Azeroth insieme a una Quel'Thalas ricostruita da zero. Tra il dramma della famiglia Ventolesto e il nuovo Prey System, ecco com'è la nuova espansione di World of Warcraft
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Nuova frontiera per i robot tagliaerba, con Ecovacs GOAT O1200 LiDAR Pro che riconosce l'ambiente in maniera perfetta, grazie a due sensori LiDAR, e dopo la falciatura può anche rifinire il bordo con il tagliabordi a filo integrato
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 12-08-2008, 17: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 17:40.
luxorl è offline   Rispondi citando il messaggio o parte di esso
Old 12-08-2008, 17: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, 08: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, 16: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 16:45.
luxorl è offline   Rispondi citando il messaggio o parte di esso
Old 14-08-2008, 07: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, 09: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, 17: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, 19: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 Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico Recensione Nothing Phone (4a) Pro: finalmente in...
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro WoW: Midnight, Blizzard mette il primo, storico ...
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere? Recensione Samsung Galaxy S26+: sfida l'Ultra, m...
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti Zeekr X e 7X provate: prezzi, autonomia fino a 6...
Roscosmos aggiorna le tempistiche per la...
Confermato il ritardo delle missioni rob...
L'Intelligenza Artificiale ora può...
Il data center del futuro secondo Huawei...
Spesa a domicilio senza conducente: robo...
Satoshi Nakamoto ha finalmente un volto?...
La Corea del Sud taglia fuori i bus elet...
GoPro taglia ancora: licenziato il 23% d...
Muse S Athena: la fascia che ti legge ne...
PS5 Pro e PSSR 2.0: tutti i giochi compa...
Dimensity 9600 Pro promette prestazioni ...
BMW i7 2026 adotta celle cilindriche Gen...
Cyberpunk 2077 si aggiorna su PS5 Pro co...
Valve porta Steam Link su Vision Pro per...
Google Maps: ufficiali 3 novità c...
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: 03:18.


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