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


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 ...




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.





Autore 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

Davide – Significato dei nomi – 29 dicembre

Davide – Significato dei nomi. Onomastico: 29 dicembre. Da dove proviene il nome Davide? Da dove deriva? Cosa significa? Ecco le risposte. Il nome Davide deriva dall’ebraico “Dod” o ...

Vai al post...

Carciofi in gabbia – Ricette semplici

Carciofi in gabbia – Ricette semplici. Ingredienti dei carciofi in gabbia: 4 carciofi (mamme) romani; 120 g di funghi coltivati; 2 zucchine; 1 piccola cipolla bianca; 2 spicchi d’aglio; 1/...

Vai al post...

1 Million Rabanne – Musica dello spot – 2012

1 million di Paco Rabanne – Musica dello spot – Dicembre 2011 Stravagante e audace, l’uomo 1 MILLION usa il suo potere ammaliatore per affrontare ogni situazione con ironia. Amant...

Vai al post...

Decompressione File in formato Zip – Codice VB.NET

Decompressione file in formato ZIP: come fare a gestire la decompressione di file Zip in un qualsiasi file, direttamente da codice VB.NET, senza librerie esterne. Introduzione Il listato seguente per...

Vai al post...
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