|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jun 2004
Messaggi: 760
|
Java e JFlex
Ciao a tutti...
Java e JFlex mi stanno facendo dannare per una cagata... allora... io ho una stringa in ingresso che, tramite uno scanner JFlex devo passare al parser. La stringa termina con uno \n, ma al parser viene passato come se fosse \\n, dato che viene stampato a video "\n", anzichè un "a capo" (mi sono spiegato? ![]() Allora ho pensato di usare il metodo replace, per sostituire \\ con un solo \... il problema è che non riesco a farla funzionare!! Codice:
Error in file "scanner.flex" (line 21): Unexpected character temp.replace('\\','\'); ![]() ![]() ![]() ![]() grazie ![]()
__________________
Gandalf_BD -------------------------------------------- "When you aim at perfection, you discover it's a moving target" |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
String replace(char oldChar, char newChar) e String replace(CharSequence target, CharSequence replacement) Dal momento che hai messo dei parametri tra apici singoli, in pratica stai usando la prima versione, che è in grado di sostituire 1 solo carattere con 1 altro carattere. Devi quindi usare la seconda versione, ad esempio con: Codice:
temp.replace ("\\\\", "\\");
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jun 2004
Messaggi: 760
|
EDIT3: ALEEEEEEEEEEEE-OOOOOHOOOOOOOOOOO!!!
ora funziona!! (non chiedetemi perchè...) grazie mille ![]() ![]() ![]() per i mods: potete chiudere ![]() --------------------------------------------------------- niente... non funziona ![]() cioè... compila tutto alla perfezione, ma poi non sostituisce un bel niente... ![]() vabe'... l'ho risolta andandomi a cercare e sostituire a manina lo \n EDIT: però è strano... se uso la endsWith() (dato che lo \n è al fondo) lo trova... se uso la replace no! ![]() ![]() EDIT2: oh, ma questa è da "Oggi le comiche"!!! ho provato a usare la replaceAll su un altra lettera della stringa e funziona... se poi la provo su "\n" o "\\n" niente!! ![]() ![]() ![]()
__________________
Gandalf_BD -------------------------------------------- "When you aim at perfection, you discover it's a moving target" Ultima modifica di Gandalf_BD : 06-02-2007 alle 13:11. |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Quindi, pur non sapendo come è fatto il tuo codice, dovresti fare ad esempio: temp = temp.replace ("\\\\", "\\");
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Jun 2004
Messaggi: 760
|
Quote:
grazie ancora ![]()
__________________
Gandalf_BD -------------------------------------------- "When you aim at perfection, you discover it's a moving target" |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:54.