Come primo articolo del blog vorrei cominciare da qualcosa di facile: La funzione Replace.
Cosa fa? Data una Stringa Expression sostituisce tutte le occorrenze della Stringa Find con quelle della stringa Replacement.
Dim Str As String = "Wamba è Brutto" 'Dichiaro una stringa con un evidete errore di battitura :)
Str = Replace(Str ,
"Brutto", "Bello") 'Correggo l'errore
Console.WriteLine(Str )
'Stampa "Wamba è Bello"
Ovviamente esitono parametri opzionali aggiuntivi, per l'approfondimento potete consultare MSDN.
Ora veniamo al succo dell'articolo:
Dobbiamo realizzare una funzione che esegua la sostituzione di una sottostringa e restituisca il risultato in maiuscolo:
Public Function ReplaceAndUpper(ByVal ToFormatString As String)
ToFormatString = Replace(ToFormatString,
"Brutto", "Bello") ' Sostituisco il testo
ToFormatString = ToFormatString.ToUpper 'Lo Rendo Maiuscolo
Return ToFormatString
End Function
Adesso costruiamo la funzione Main con la chiamata
Sub Main()
Dim Str As String = "Wamba è Brutto"
Console.WriteLine(ReplaceAndUpper(Str))
Str =
""
Console.WriteLine(ReplaceAndUpper(Str))
Console.ReadLine()
End Sub
Come vedete ci sono due chiamate a ReplaceAndUpper, la prima contiene un testo e la seconda una stringa vuota. La seconda chiamata genera un'eccezione Object reference not set to an instance of an object. Perchè? Se entrate eseguite le operazioni StepByStep vedrete che il risultato di ToFormatString = Replace(ToFormatString, "Brutto", "Bello") quando ToFormatString vale "" è nothing! Ovviemente l'istruzione seguente ToFormatString.ToUpper genera l'eccezione.
Come Risolvere il Problema:
Utiliziamo il metodo String.Replace(Find , Replacement) e tutto fila liscio.
Public Function ReplaceAndUpper(ByVal ToFormatString As String)
ToFormatString = ToFormatString.Replace(
"Brutto", "Bello")
ToFormatString = ToFormatString.ToUpper
Return ToFormatString
End Function
Nota Finale:
Ho un forte sospetto che il metodo String.Replace() sia anche più veloce, ma non ho mai controllato. Appena fatto il test vi farò sapere.
Wamba
posted @ domenica 11 febbraio 2007 14:32