+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18

Individuare la posizione di più caratteri in una stringa

  1. #1
    Post
    12
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ciao a tutti, apro questa discussione per chiedervi un piccolo consiglio in merito alle stringhe.
    Ipotizziamo di avere questa stringa:
    Dim testo As String = "!Ciao!"
    
    Se volessi individuare la posizione di un carattere scriverei:
    Dim Pos_Carattere As Integer = testo.IndexOf("!")
    
    In questo modo individuerei la posizione del carattere "!" (il primo). Ma come dovrei fare per trovare anche la posizione del secondo carattere "!"
    Ciao, grazie mille a tutti.

  2. #2
    Post
    1,877
    Blogs
    21
    Like Inviati  
    13
    Like Ricevuti  
    11
    Ciao,
    indexOf ha un overload che permette di specificare la posizione da cui iniziare la ricerca;
    quindi , utilizzandolo, una volta trovata un'occorrenza continui a cercare dalla posizione successiva
    fino a che ne esistono
    ℹ️ Leggi di più su sspintux ...

  3. #3
    Post
    12
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ciao sspintux, grazie mille.

  4. #4
    Post
    12
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ciao sspintux, scusa se riapro la discussione.
    Io ho scritto in questo modo:
    Dim testo As String = "!C!iaoooo!oo!"
    Dim posizione As Integer = 0
    
    Console.WriteLine(Len(testo) - Len(Replace(testo, "!", "")))
    For a As Integer = 0 To Len(testo) - Len(Replace(testo, "!", "")) - 1
        Console.WriteLine(testo.IndexOf("!", posizione))
        posizione = posizione + 1
    Next
    
    I valori che ottengo sono:
    4
    0
    2
    2
    9
    Questi valori sono corretti in parte perchè dovrei ottenere:
    4
    0
    2
    9
    12
    Quindi il secondo "!" me lo considera due volte mentre l'ultimo non me lo considera affatto. Secondo te come potrei migliorare il codice che ho scritto?
    Ciao, grazie mille.

  5. #5
    L'avatar di gibra
    gibra non è in linea Very Important Person
    Post
    6,206
    Like Inviati  
    18
    Like Ricevuti  
    10

  6. #6
    Post
    1,877
    Blogs
    21
    Like Inviati  
    13
    Like Ricevuti  
    11
    Quote Originariamente inviato da samurai.sette Visualizza il messaggio
    Secondo te come potrei migliorare il codice che ho scritto?
    riscrivendolo da capo usando while e senza replace;

    parti con la ricerca da posizione =0
    e se indexOf ti restituisce un valore >=0
    continui con posizione= IndexOf+1
    ℹ️ Leggi di più su sspintux ...

  7. #7
    L'avatar di Brontolo
    Brontolo non è in linea Very Important Person
    Post
    3,098
    Like Inviati  
    2
    Like Ricevuti  
    4
    La posizione 2 te la individua due volte perché la prima volta la cerchi a partire da 1 e la seconda a partire da 2. La posizione di partenza non la devi incrementare di 1, ma devi partire dal precedente valore di IndexOf, come ti ha detto sspintux.
    A parte questo, le funzioni Len() e Replace() sono mantenute solo per compatibiltà con le precedenti versioni di VB. E' meglio usare i corrispondenti metodi propri di .Net.
    ℹ️ Leggi di più su Brontolo ...

  8. #8
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Post
    17,396
    Blogs
    5
    Like Inviati  
    5
    Like Ricevuti  
    32
    Quote Originariamente inviato da samurai.sette Visualizza il messaggio
    Ciao sspintux, scusa se riapro la discussione.
    Mica era chiusa...

    Ma perché utilizzi la Replace? Ce lo spieghi?
    ℹ️ Leggi di più su AntonioG ...

  9. #9
    Post
    12
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ciao a tutti e grazie mille per tutti i messaggi. Con i vostri consigli sono riuscito nel mio intento.
    Per AntonioG: ho utilizzato la Replace per individuare il numero totale di caratteri uguali (in questo caso !).
    Ciao e grazie mille a tutti.

  10. #10
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Post
    17,396
    Blogs
    5
    Like Inviati  
    5
    Like Ricevuti  
    32
    Beh chiaramente non serviva.

    Per chi leggerà, puoi postare il codice con cui hai risolto?
    ℹ️ Leggi di più su AntonioG ...

+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo

Potrebbero interessarti anche ...

  1. Estrazione caratteri da una stringa
    Da ljt nel forum Visual Basic .Net
    Risposte: 31
    Ultimo Post: 02-12-2019, 12:57
  2. Posizione Stringa
    Da edo1992 nel forum Delphi
    Risposte: 10
    Ultimo Post: 05-12-2013, 18:43
  3. Individuare posizione tra due date
    Da carlitosx nel forum Microsoft Access
    Risposte: 26
    Ultimo Post: 08-05-2013, 09:58
  4. individuare tutte le righe con stringa
    Da snowscience nel forum Microsoft Word
    Risposte: 3
    Ultimo Post: 01-07-2009, 09:40
  5. caratteri in una stringa
    Da simonemtb nel forum Visual Basic 6
    Risposte: 3
    Ultimo Post: 14-12-2004, 17:30