|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: May 2006
Città: Cesenatico
Messaggi: 274
|
[JAVA]Come faccio a dire di stampare una stringa quando è presente uno spazio?
Io ho delle strighe tipo
"Ciao mio cane" "Ciao mio lupo" "Ciao mio pesce" Io vorrei dire stampa cane, lupo e pesce... Se faccio ciclo for System.out.println(Stringa); mi stampa tutto.... Come fare?
__________________
CPU Intel i5-4590, Scheda Madre Asrock H97 Pro4, RAM DDR3 Corsair Vengeance 1600MHz 8GB CL9, Hard Disk WD Caviar Blue 1TB, SSD Crucial MX100 256GB. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Qualcosa del genere:
Codice:
String[] tokens = stringToParse.split(" "); for (int i = 0; i < (tokens.length - 2); i++) { System.out.print(tokens[i] + ", "); } System.out.print(tokens[tokens.length - 1] + " e " + tokens[tokens.length]);
__________________
![]() |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: May 2006
Città: Cesenatico
Messaggi: 274
|
Non riesco a capire stringToParse a cosa dovrebbe essere uguale???
__________________
CPU Intel i5-4590, Scheda Madre Asrock H97 Pro4, RAM DDR3 Corsair Vengeance 1600MHz 8GB CL9, Hard Disk WD Caviar Blue 1TB, SSD Crucial MX100 256GB. |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
stringToParse è solo il nome della tua String (ad esempio contenente "Ciao mio cane") che vuoi "spezzettare".
la classe String è dotata del metodo split() che ti consente di passare come argomento una regex (espressione regolare) con cui "parserizzare" la Stringa stessa; il metodo di restituisce un array di String, che sono i vari "token" in cui la String originaria è stata spezzata. |
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: May 2006
Città: Cesenatico
Messaggi: 274
|
Mi scrive la prima parola e poi mi da un'ECCEZZIONE...
Indice, java.lang.ArrayIndexOutOfBoundsException: 1 at ParserDOM.controlli(ParserDOM.java:392) at ParserDOM.<init>(ParserDOM.java:54) at ParserDOM.main(ParserDOM.java:193) l'eccezione è dovuta a System.out.print(tokens[tokens.length - 1] + " e " + tokens[tokens.length]); se levo questa riga mi da tutto ok esattamente l'errore generato sopra è dovuto da tokens[tokens.length]);
__________________
CPU Intel i5-4590, Scheda Madre Asrock H97 Pro4, RAM DDR3 Corsair Vengeance 1600MHz 8GB CL9, Hard Disk WD Caviar Blue 1TB, SSD Crucial MX100 256GB. Ultima modifica di xxdavide84xx : 24-01-2008 alle 09:38. |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Jul 2002
Messaggi: 4334
|
tokens[tokens.length]
è sempre fuori dai limiti
__________________
|Java Base| |
![]() |
![]() |
![]() |
#7 |
Member
Iscritto dal: May 2006
Città: Cesenatico
Messaggi: 274
|
giusto, perchè sii parte da 0, vero???
l'ultimo dovrebbe essere tokens[tokens.length-1] se non sbaglio, confermi? Ora voglio porre questo problema....io ho più di 1000 stringhe e solo uno contiene Anno Accademico 2006/07 io vorrei dire if ( stringa.equalsIgnoreCase("Anno Accademico") STAMPA OK Io non entrerò MAI nell'if a meno che non faccia così:if ( stringa.equalsIgnoreCase("Anno Accademico 2006/07"), sperando che poi dopo 2006/07 non vi sia uno SPAZIO......come posso ovviare al problema???
__________________
CPU Intel i5-4590, Scheda Madre Asrock H97 Pro4, RAM DDR3 Corsair Vengeance 1600MHz 8GB CL9, Hard Disk WD Caviar Blue 1TB, SSD Crucial MX100 256GB. Ultima modifica di xxdavide84xx : 24-01-2008 alle 10:01. |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Jul 2002
Messaggi: 4334
|
Sì.
per l'altro problema: if ( stringa.startsWith("Anno...
__________________
|Java Base| |
![]() |
![]() |
![]() |
#9 |
Member
Iscritto dal: May 2006
Città: Cesenatico
Messaggi: 274
|
Grazie anche per questo...è possibile unire
startsWith con il caso in cui il programma non sia case sensitive??? Es Stringa a="ANNO accademico 1" Stringa b="Anno Accademico 2" Stringa c="anno Accademico 3" if(stringa.startsWith("anno")) i++; System.out.println(i); i finale deve essere UGUALE a 3... se scrivo così è uguale a 1 sottointeso che non vorrei usare questo METODO: if(stringa.startsWith("Anno")||stringa.startsWith("anno")||stringa.startsWith("ANNO"))
__________________
CPU Intel i5-4590, Scheda Madre Asrock H97 Pro4, RAM DDR3 Corsair Vengeance 1600MHz 8GB CL9, Hard Disk WD Caviar Blue 1TB, SSD Crucial MX100 256GB. |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Jul 2002
Messaggi: 4334
|
if ( stringa.toLowerCase().startsWith("anno...
String ha molti metodi utili, ti consiglio un'occhiata al javadoc: http://java.sun.com/javase/6/docs/ap...ng/String.html
__________________
|Java Base| Ultima modifica di lovaz : 24-01-2008 alle 10:34. |
![]() |
![]() |
![]() |
#11 | |
Member
Iscritto dal: May 2006
Città: Cesenatico
Messaggi: 274
|
Quote:
__________________
CPU Intel i5-4590, Scheda Madre Asrock H97 Pro4, RAM DDR3 Corsair Vengeance 1600MHz 8GB CL9, Hard Disk WD Caviar Blue 1TB, SSD Crucial MX100 256GB. |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:05.