View Full Version : [JAVA]Come faccio a dire di stampare una stringa quando è presente uno spazio?
xxdavide84xx
24-01-2008, 04:43
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?
^TiGeRShArK^
24-01-2008, 08:00
Qualcosa del genere:
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]);
xxdavide84xx
24-01-2008, 09:02
Qualcosa del genere:
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]);
Non riesco a capire stringToParse a cosa dovrebbe essere uguale???
banryu79
24-01-2008, 09:10
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.
xxdavide84xx
24-01-2008, 09:19
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]);
tokens[tokens.length]
è sempre fuori dai limiti
xxdavide84xx
24-01-2008, 09:57
tokens[tokens.length]
è sempre fuori dai limiti
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???
Sì.
per l'altro problema:
if ( stringa.startsWith("Anno...
xxdavide84xx
24-01-2008, 10:18
Sì.
per l'altro problema:
if ( stringa.startsWith("Anno...
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"))
if ( stringa.toLowerCase().startsWith("anno...
String ha molti metodi utili, ti consiglio un'occhiata al javadoc:
http://java.sun.com/javase/6/docs/api/java/lang/String.html
xxdavide84xx
24-01-2008, 10:33
if ( stringa.toLowerCase().startsWith("anno...
String ha molti metodi utili, ti consiglio un occhiata al javadoc:
http://java.sun.com/javase/6/docs/api/java/lang/String.html
Grazie infinite!!!!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.