PDA

View Full Version : [Java] Split


Banshee83
05-12-2005, 16:43
Ragazzi come faccio a dividere in due una stringa del tipo "nome cognome" eliminando lo spazio e avendo due stringhe: "nome" e "cognome"?Grazie

Brazorv
05-12-2005, 16:57
Nella classe String esiste questo metodo

public String[] split(String regex)

gli passi una regex in cui c'è il delimitatore della stringa, ti restituisce un array con le due stringhe
nel tuo caso

String[] splitArray = "nome cognome".split(" ");

ti restituisce

splitArray[0] = "nome"
splitArray[1] = "cognome"

Banshee83
05-12-2005, 19:57
Grazie!!!Ci ero quasi arrivato ma mi mancava un dettaglio!!

Banshee83
06-12-2005, 14:05
Senti ma se io faccio questo split ma la stringa che ricevo è solo "nome" che succede?Può creare qualche problema vero?

kingv
06-12-2005, 14:19
Senti ma se io faccio questo split ma la stringa che ricevo è solo "nome" che succede?Può creare qualche problema vero?


non ti crea problemi, ma l'array che ti verrà restituito avrà un unico elemento contentente il nome.

pinok
06-12-2005, 15:01
Forse i problemi potresti averli con cognomi del tipo "de Piscopo", dove c'è un ulteriore spazio.
Se è possibile, sarebbe sempre meglio separare nettamente il nome dal cognome, quindi farti arrivare due valori distinti o un bean con nome e cognome.

PerezDeQueya80
06-12-2005, 15:23
Attenzione al metodo split poiché è presente dalla versione 1.4 in poi ;)

pinok
06-12-2005, 16:18
Attenzione al metodo split poiché è presente dalla versione 1.4 in poi ;)
Per andare sicuri, basta usare il caro vecchio StringTokenizer ;)

Banshee83
07-12-2005, 13:34
Ok grazie a tutti!

Cmq i cognomi non creano problemi....almeno per ora!!!!

PerezDeQueya80
07-12-2005, 13:54
Per andare sicuri, basta usare il caro vecchio StringTokenizer ;)Esattamente! :asd:

Banshee83
14-01-2006, 19:19
ok ora ho un altro problema....nel caso l'utente scriva

"robert de niro"

ci sono dei problemi, per non parlare del caso

"de niro robert"

qual'era l'alternativa di cui parlavate??

pisto
14-01-2006, 19:38
il programma assume che tu scriva prima nome e poi cognome, per forza succedono casini se scambi le due cose. se poi metti tre parole, lui è programmato per prenderne due, e quindi taglia l'ultima. quindi la soluzione è qualle che t'ha detto pinok

pinok
14-01-2006, 19:39
Devi spezzare i campi di input, per cui in un field inserisce il cognome e nell'altro il nome.
E ovviamente li salvi in campi separati nel DB (se lo usi).
A questo punto lo split non ti serve più.

Banshee83
15-01-2006, 21:02
Si però dividere i campi di input non è il massimo!A parte ke graficamente non viene benissimo...poi sotto la casella di testo che contiene quello che digita l'utente c'è un menu a tendina con i vari criteri di ricerca (titolo,attore,regista,genere,etc..) e avere 2 caselle di testo potrebbe creare dei problemi agli utenti!

Io ho fatto la cazzata di dividere nome e cognome nel database!!Bastava mettere tutto nello stesso campo e non ci sarebbero stati problemi

pinok
15-01-2006, 22:58
Si però dividere i campi di input non è il massimo!A parte ke graficamente non viene benissimo...poi sotto la casella di testo che contiene quello che digita l'utente c'è un menu a tendina con i vari criteri di ricerca (titolo,attore,regista,genere,etc..) e avere 2 caselle di testo potrebbe creare dei problemi agli utenti!

E che utenti sono? Basta che restringi il campo di input e di fronte a uno scrivi cognome e di fronte all'altro nome ;)

Io ho fatto la cazzata di dividere nome e cognome nel database!!Bastava mettere tutto nello stesso campo e non ci sarebbero stati problemi
C'era (e c'è sempre il rischio) che ti scrivano nome cognome invece di cognome nome.
Con i campi separati è più difficile e se sbagliano, è un evidente errore loro di input.

Banshee83
17-01-2006, 11:17
[QUOTE=pinok]E che utenti sono? Basta che restringi il campo di input e di fronte a uno scrivi cognome e di fronte all'altro nome ;)

ahah!No intendevo che dovrei fare 2 form differenti, una con una sola casella di testo per il titolo del film o il genere, l'altra con le 2 caselle per nome e cognome per cercare attori o registi.
Perchè se ne tengo solo una con 2 caselle di testo, le famose "nome e cognome", l'utente potrebbe avere dei dubbi su quale usare per cercare un film per "titolo" o "genere". Praticamente devo fare un sito ke mio nonno ultrasettantenne riuscirebbe a usare senza possibilità di errori!!

Visto ke siete molto disponibili avrei un'altra domanda: per passare degli oggetti lista tra pagine jsp come posso fare?Sto provando tramite i parametri nell'url ma nn sembra funzionare,o forse sbaglio qualcosa io!Cmq ci sto lavorando

pinok
17-01-2006, 12:57
Se gli oggetti lista a cui ti riferisci sono oggetti Java, puoi metterli nella sessione nella pagina di partenza e recuperarli dalla sessione in quella di arrivo.
Oppure, se la sessione ti crea problemi per qualche motivo, potresti serializzarli in una pagina, metterli in un hidden field di una form e postarli alla pagina successiva, dove li recuperi e li deserializzi.

Banshee83
17-01-2006, 14:03
grazie ma ho risolto in un'altra maniera!
Usare la sessione della pagina è un buon metodo, lo userò per altri dati!