Torna indietro   Hardware Upgrade Forum > Software > Programmazione

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
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto
be quiet! debutta nel settore mouse da gaming con Dark Perk Ergo e Dark Perk Sym: due modelli gemelli per specifiche, con polling rate di 8.000 Hz anche in wireless, sensore PixArt PAW3950 da 32.000 DPI e autonomia dichiarata fino a 110 ore. Nel test, a 8.000 Hz si arriva a circa 30 ore reali, con ricarica completa in un'ora e mezza
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


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...
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequen...
La NASA rende note alcune informazioni a...
ASUS ExpertCenter PN54: mini PC Copilot+...
Geely userà una fabbrica europea ...
Leica Camera tratta la cessione della ma...
La nuova AMD non è più 'ec...
La Cina non è più la pecor...
Un SSD accanto alla GPU: la ricetta di Z...
Texas Instruments acquisisce Silicon Lab...
NVIDIA chiede l'archiviazione della caus...
MOUSE: P.I. For Hire: sembra un cartone ...
Francia all'attacco: X sotto indagine, p...
Vodafone abilita il Wi-Fi Calling in Ita...
GTA VI: confermata l'uscita a novembre, ...
Il robot umanoide G1 di Unitree cammina ...
Gli americani comprano quasi solo iPhone...
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:18.


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