Sostituire una substring con un’altra – Codice VB.NET


Categoria dell'articolo: Codice VB.NET

Listati in codice Visual Basic.NET, elaborati o rielaborati e adattati da IngAC con la versione 2015. Funzioni e subroutine varie utili alla creazione di programmi.





Articolo pubblicato da:

Condividi articolo:

Sostituire o eliminare in una stringa una substring con un’altra (o con una stringa vuota) a scelta del programmatore.

L’esigenza di dover sostituire parti di un testo o comunque di stringhe si fa spesso sentire: ad esempio si potrebbe voler eliminare tutti i caratteri non stampabili oppure sostituire alla parola “pippo” la parola “cavallo”. Ovviamente esistono metodi più sofisticati, tuttavia il codice seguente può essere di aiuto. La funzione di base pensata da IngAC per sostituire una substring in una stringa è: Private Function IngAC_STRINGHE_RIMPIAZZA(string_input As String, string_search As String, string_replace As String) As String , che sostituisce solo la prima occorrenza della “string_search”, mentre quella deputata allo scopo di scovare e rimpiazzare tutte le occorrenze della “string_search” nella string_input è la:  Public Function IngAC_STRINGHE_RIMPIAZZA_TUTTE(string_input As String, string_search As String, string_replace As String) As String

REM =================================================================
    Private Function IngAC_STRINGHE_RIMPIAZZA(string_input As String, string_search As String, string_replace As String) As String
        IngAC_STRINGHE_RIMPIAZZA = string_input
        If string_input IsNot Nothing And string_search IsNot Nothing Then
            Dim string_input_len As Integer = string_input.Length
            Dim string_search_len As Integer = string_search.Length
            If string_input_len >= string_search_len Then
                Dim string_search_pos As Integer = InStr(string_input, string_search) 
                If string_search_pos = 0 Then Return string_input 
                Dim Sub_string_1 As String = Strings.Left(string_input, string_search_pos - 1)
                Dim Sub_string_2 As String = Strings.Right(string_input, string_input_len - string_search_pos - string_search_len + 1)
                IngAC_STRINGHE_RIMPIAZZA = Sub_string_1 & string_replace & Sub_string_2
            End If
        End If
    End Function
    REM =================================================================
    Public Function IngAC_STRINGHE_RIMPIAZZA_TUTTE(string_input As String, string_search As String, sAs String) As String
        IngAC_STRINGHE_RIMPIAZZA_TUTTE = string_input
        Dim tmp_prima As String = string_input
        Dim tmp_dopo As String = ""
        Do
            tmp_dopo = IngAC_STRINGHE_RIMPIAZZA(tmp_prima, string_search, string_replace)
            If tmp_prima = tmp_dopo Then
                Return tmp_dopo
            Else
                tmp_prima = tmp_dopo
            End If
        Loop
    End Function

Input delle due funzioni per sostituire una substring

La funzione IngAC_STRINGHE_RIMPIAZZA_TUTTE ha per input, cosi come la funzione  IngAC_STRINGHE_RIMPIAZZA i seguenti parametri:

  • string_input : è la stringa di origine, nella quale si vuole sostituire una substring (string) o un carattere qualsiasi (char);
  • string_search: è la stringa da ricercare nella string_input; può essere sia un singolo carattere sia una stringa. Se la lunghezza supera quella della string_input viene restituita la stringa di partenza, senza modifiche;
  • string_replace: è la stringa che verrà messa al posto della string_search. Può essere anche una stringa vuota e in questo caso la funzione diventa: IngAC_STRINGHE_RIMUOVI_TUTTE, il cui codice è semplicemente:
    Public Function IngAC_STRINGHE_RIMUOVI_TUTTE(string_input As String, string_search As String) As String
            Return IngAC_STRINGHE_RIMPIAZZA_TUTTE(string_input, string_search, "")
     End Function

Descrizione delle funzioni per sostituire una substring

Il cuore della IngAC_STRINGHE_RIMPIAZZA è instr che restituisce la posizione della prima occorrenza della string_search: con semplici calcoli si determinano due sottostringhe, una che precede e una che segue la string_search: in output viene restituita la loro somma. La IngAC_STRINGHE_RIMPIAZZA_TUTTE  è soltanto un loop dal quale si esce quando non ci sono più occorrenze delle string_search: in output restituisce una stringa “pulita” dalla presenza della string_search.

Link utili

Sostituire una substring - Codice VB.NET

Sostituire una substring – Codice VB.NET



Random Post

PREVISIONE LOTTO n° 20 di 150 per SABATO 21 GENNAIO 2017.

Previsione Lotto 21 Gennaio 2017

PREVISIONE LOTTO n° 20 di 150 per SABATO 21 GENNAIO 2017. Esito della previsione precedente: BARI :Niente; PALERMO:Niente; ROMA:Niente; NAPOLI:Estratto.  In questa pagina Romoletto Blog scriverà le...

Vai al post...

Nonna – Interpretazione dei sogni

Nonna - Interpretazione dei sogni

Sognare la nonna: significato, interpretazione e numeri associati al sogno. La nonna è un simbolo di sostegno materiale e spirituale, calore umano, buona fortuna e successo negli affari. Nel sogno è...

Vai al post...

Ladri, ladro – Interpretazione dei sogni

Ladri - Interpretazione dei sogni

I ladri nei sogni: significati, numeri del lotto e interpretazioni varie I ladri sono persone che non rispettano nessuna regola e nessuna legge. Sono sempre impegnati ad acquisire surrettiziamen...

Vai al post...

PUBBLICITÀ



Una funzione per unire due file (merge file) ed eventualmente manipolarli, tramite codice VB.NET Unire
Una funzione per generare numeri primi, tutti i numeri primi, entro un dato intervallo tramite
Tagliare file: ovvero come fare a gestire lo spostamento di qualsiasi file, con controllo dei byte effettivamente
Disclaimer:


Questo blog NON è un prodotto editoriale ai sensi della legge n° 62 del 7 marzo 2001. Le immagini tratte da internet che possano violare i diritti di autore, previa comunicazione, attraverso la sezione -contatti-, verranno prontamente rimosse o sostituite.

Copyright:


I contenuti presenti su ROMOLETTO BLOG dei quali è autore il proprietario del blog non possono essere copiati, riprodotti, redistribuiti perché appartenenti all autore stesso. Si vieta la copia e la riproduzione dei contenuti in qualsiasi modo o forma. Si vieta altresì la pubblicazione e la redistribuzione dei contenuti non autorizzata espressamente dell autore.


Copyright © 2011 / 2017 - ROMOLETTO BLOG - All Right Reserved

IngAC

Informazioni su Romoletto

Ingegnere Civile, Blogger, Programmatore VB.NET, Lezioni private per scuole medie inferiori e superiori. Per contattarmi scorri la home fino in fondo e vai al form -Contatti-

Navigazione per Articoli della stessa Categoria