martes, 5 de marzo de 2013

Eliminar espacios en blanco entre Strings en un TextBox - VB.NET

Este es un típico ejemplo de como eliminar los caracteres en blanco tanto dentro como fuera de una cadena de tipo String al momento de extraer el contenido de un TextBox en Visual Basic.NET.


Private Sub btn_print_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_print.Click

        Try
            Dim texto As String = Trim(txtpais.Text)
            While texto.Contains("  ")
                texto = texto.Replace("  ", " ")
            End While
            Dim texto2() As String = Split(texto, " ")
            Dim i As Integer
            For i = 0 To UBound(texto2)
                MsgBox(texto2(i))
            Next
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try

End Sub

Explicación del Código:
Lo primero que hago es establecer en control que se encargará de lanzar determinado evento...En mi caso, al darle click al botón btn_print se lanzará un evento de tipo Click que se encargará de ejecutar el bloque de código que se encuentra en el interior de dicho botón.

Dicho bloque se encuentra dentro de las sentencias TRY - CATCH que se encargarán de capturar en primera instancia determinado código, y de lanzar un mensaje de excepción en caso de que ocurra un error o excepción de programación.

En nuestro caso, lo que sucederá en caso de que ocurra una excepción, será mostrarme un cuadro de diálogo cuyo contenido será "ex.Message", que no hace otra cosa que imprimir el detalle de la excepción.

Siguiendo con la explicación, lo que hace la primera línea dentro de la sentencia TRY es asignarle el valor del TextBox "txtpais" a la variable texto, eliminando previamente los espacios laterales en blanco con el método TRIM. Luego, mediante el bucle WHILE, reemplazamos los dobles espacios en blanco entre caracteres,eliminando de esta forma más de un espacio en blanco innecesario

Una vez hecho esto, procedemos a declarar el array de tipo String texto2() y le asignamos como dato el contenido de la variable texto mediante la función split, que se encarga de almacenar en una matriz las palabras separadas por un caracter, en este caso por un espacio en blanco " ".

Por último, recorremos el array creado desde la posición inicial hasta el último sub índice de determinado array(esto lo logramos con Ubound(texto2()), e imprimimos palabra por palabra digitada.


3 comentarios:

LeninNebadon dijo...

Imports System.Text.RegularExpressions
Module Example

Public Sub Main()
Dim input As String = "This is text with far too much whitespace."
Dim pattern As String = "\s+"
Dim replacement As String = " "
Dim result As String = Regex.Replace(input, pattern, replacement)

Console.WriteLine("Original String: {0}", input)
Console.WriteLine("Replacement String: {0}", result)
End Sub

End Module

' The example displays the following output:
' Original String: This is text with far too much whitespace.
' Replacement String: This is text with far too much whitespace.

Anónimo dijo...

Good Post!!!

Jose Gregorio dijo...

Muy buena solución. Gracias.

Publicar un comentario