Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Come ottengo più risultati da un IndexOf?
Forum - C# / VB.NET - Come ottengo più risultati da un IndexOf?

Avatar
BugBar (Normal User)
Rookie


Messaggi: 27
Iscritto: 03/12/2011

Segnala al moderatore
Postato alle 13:22
Sabato, 24/12/2011
Ecco la mia stringa
"Io mi chiamo Davide, tu ti chiami Davide? no, mi chiamo Giuseppe"
(ovviamente è una frase inventata)

Con IndexOf vado a cercare "chiamo" e ovviamente ottengo la posizione dell'inizio della parola "chiamo", ovvero questa : "Io mi chiamo Davide, tu ti ..."

ma io in realtà voglio ottenere la posizione dell'ultima parola "chiamo", ovvero questa : "no, mi chiamo Giuseppe"

Così quando mi ritorna la posizione in Integer faccio + 6 (lenght della parola "chiamo") e ottengo così "Giuseppe" (per farvi un pò capire che cosa sto facendo, se non avete capito lo rispiego ;)

Ultima modifica effettuata da BugBar il 24/12/2011 alle 13:23
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 13:26
Sabato, 24/12/2011
LastIndexOf("parola") per l'ultima corrispondenza.

PM Quote
Avatar
Renny (Normal User)
Expert


Messaggi: 231
Iscritto: 30/07/2011

Segnala al moderatore
Postato alle 13:46
Sabato, 24/12/2011
Chiaro, con LastIndexOf ti trova l'ultima occorrenza. Ma se le occorrenze sono 3 e ti serve individuare la 2, verifica gli overloads di IndexOf. Se non ricordo male è possibile specificare da che carattere della stringa cominciare la ricerca. Per cui potresti cercare la seconda occorrenza "saltando" i caratteri della "prima". Ad esempio, una cosa del tipo IndexOf(10,"chiamo") ti cerca "chiamo" a partire dal 10 carattere dell'array di char della tua stringa.
La best practice, in termini di velocità e di precisione però sono le espressioni regolari..
Ciao!

PM Quote