Método de subcadena VB.NET con EJEMPLO

⚡ Resumen inteligente

Subcadena de VB.NettracEste método selecciona una porción de una cadena especificando un índice inicial y una longitud opcional. Pertenece a la clase String, cuenta los caracteres desde cero y devuelve una cadena completamente nueva sin modificar la original.

  • 🔢 Índice basado en cero: El método Substring cuenta los caracteres desde el índice 0, por lo que la primera letra de una cadena se sitúa en la posición cero.
  • ☑️ Dos sobrecargas: Si se pasa un argumento, se devuelve todo lo que aparece a partir de ese índice, mientras que si se pasan dos argumentos, se devuelve un número fijo de caracteres.
  • ✂️ Extract por posición: Combine Substring con IndexOf o LastIndexOf para capturar el texto anterior o posterior a un carácter específico.
  • ⚠️ Indexación segura: Un índice negativo o fuera de rango genera una excepción ArgumentOutOfRangeException, por lo que debe validar los valores antes de llamar al método.
  • 🔤 Resultado inmutable: La función Substring devuelve una nueva cadena y deja la cadena de origen sin cambios, lo que coincide con la inmutabilidad de las cadenas de .NET.
  • 🤖 Asistencia de IA: GitHub Copilot e IntelliCode En Visual Studio 2026, se sugieren las llamadas correctas a la función Substring y se marcan los índices fuera de rango a medida que se escribe.

Subcadena de VB.Net

¿Qué es una subcadena?

La función Substring se utiliza para obtener una parte de una cadena específica. Este método está definido en la clase String. Microsoft VB.NetDebes especificar el índice de inicio desde el cual se comenzará a escribir la cadena.tracted. La cadena será extracdesde ese índice hasta la longitud que usted especifique.

Antes de extracAl analizar el texto, ayuda a comprender la sintaxis que espera el método Substring.

Sintaxis de subcadena

La función acepta dos argumentos como se muestra en la siguiente sintaxis:

Public Function Substring(ByVal start_Index As Integer, ByVal sub_length As Integer) As String

Aquí,

  • La palabra clave ByVal denota paso por valor, que es un mecanismo para pasar argumentos a funciones.
  • El índice de inicio es el índice desde el cual se obtendrá la subcadena.
  • sub_length indica la longitud hasta la cual se copiará la cadena desde start_Index. Esta longitud se mide en términos del número de caracteres. La función devolverá el extracsubcadena ted.

El índice inicial comienza en cero, por lo que el primer carácter de la cadena se sitúa en la posición 0 en lugar de la posición 1.

Una vez definida la sintaxis, los siguientes ejemplos muestran el método Substring en funcionamiento dentro de una aplicación de consola.

Ejemplos

Paso 1) Crea una nueva aplicación de consola.

Paso 2) Añádele el siguiente código:

Module Module1
    Sub Main()

        Dim st As String = "Guru99"

        Dim subst As String = st.Substring(0, 4)

        Console.WriteLine("The substring is: {0}", subst)

        Console.ReadKey()
    End Sub

End Module

Paso 3) Haga clic en el botón Iniciar de la barra de herramientas para ejecutar el código. Debería obtener el siguiente resultado:

Salida de ejemplo de subcadena en VB.Net

Hemos utilizado el siguiente código:

Ejemplo de código para subcadenas en VB.Net

Explicación de Code:

  1. Creando un módulo llamado Módulo1.
  2. Iniciando el subprocedimiento principal.
  3. Definir una variable de cadena llamada st y asignarle el valor. Guru99 para ello.
  4. Definir una variable de cadena llamada 'subst' como una subcadena de la cadena 'st' desde el índice 0 y con una longitud de 4 caracteres.
  5. Imprimiendo algo de texto y la subcadena anterior en la consola.
  6. Pausar la ventana de la consola por un momento esperando que el usuario tome medidas para cerrarla.
  7. Fin del subprocedimiento principal.
  8. Fin del módulo.

Un argumento

¿Qué pasa si pasamos solo un argumento a la función? La función copiará todos los datos del String que comienza desde ese índice. Lo que sucede es que la función Substring copia internamente todos los datos de cadena en ese índice, así como los que siguen a ese índice. Por ejemplo:

Module Module1
    Sub Main()

        Dim st As String = "Guru99"

        Dim subst As String = st.Substring(4)

        Console.WriteLine("The substring is: {0}", subst)


        Console.ReadKey()

    End Sub

End Module

Haga clic en el botón Iniciar para ejecutar el código. Debería devolver lo siguiente:

Subcadena con un argumento en VB.Net

La función Substring devolvió 99. Pasamos el parámetro 4 a la función, lo que significa que comenzará a ejecutarse.tract la subcadena desde el carácter en el índice 4 hasta el final de la cadena. 9 es el carácter en el índice 4 de la cadena. Guru99, por lo tanto el extracLa ción comenzó allí.

Además de eliminar caracteres desde un único índice, el método Substring también puede seleccionar caracteres en medio de una cadena.

Personajes intermedios

También es posible obtener los caracteres intermedios de la cadena en cuestión. En este caso, solo tenemos que proporcionar el índice inicial y la longitud de la cadena que necesitamos. En el siguiente ejemplo, obtenemos una subcadena de la cadena especificada a partir del índice 2 y la cadena tendrá una longitud de 2 caracteres:

Module Module1
    Sub Main()

        Dim st As String = "Guru99"

        Dim subst As String = st.Substring(2, 2)

        Console.WriteLine("The substring is: {0}", subst)


        Console.ReadKey()

    End Sub

End Module

Haga clic en el botón Iniciar de la barra de herramientas para ejecutar el código. Obtendrá el siguiente resultado:

VB.Net Caracteres centrales de subcadena

En el ejemplo anterior, la función Substring devolvió ru. Pasamos los parámetros (2, 2) a la función. El primer 2 le indica a la función que comience la expresión.tracla ción de la subcadena desde el índice 2 mientras que el segundo 2 indica a la función que devuelva una subcadena con una longitud de solo 2 caracteres. Esto significa que la extracLa subcadena debe comenzar desde el elemento ubicado en el índice 2 de la cadena. Guru99, que es r. Dado que la subcadena devuelta solo debe tener una longitud de 2 caracteres, el extracLa operación no podrá continuar más allá de la 'u', por lo tanto, devolvió 'ru'.

Un personaje

Podemos utilizar la función Substring para obtener un solo carácter de una cadena. En tal caso, es necesario realizar una asignación, pero se puede acceder al carácter directamente. Esto es un poco más rápido. El siguiente ejemplo demuestra dos formas de lograrlo:

Module Module1
    Sub Main()

        Dim st As String = "Guru99"

        Dim mid1 As Char = st(1)
        Console.WriteLine(mid1)

        Dim mid2 As String = st.Substring(1, 1)

        Console.WriteLine(mid2)

        Console.ReadKey()

    End Sub

End Module

Haga clic en el botón Iniciar para ejecutar el código. Obtendrá el siguiente resultado:

Salida de subcadena de un solo carácter en VB.Net

Hemos utilizado el siguiente código:

Código de subcadena de un solo carácter en VB.Net

Explicación de Code:

  1. Creando un módulo llamado Módulo1.
  2. Iniciando el subprocedimiento principal.
  3. Definir una variable de cadena llamada st y asignarle el valor. Guru99 para ello.
  4. Definir una variable de cadena llamada mid1 y obtener el carácter en el índice 1 de String st. Este carácter será asignado a la variable mid1.
  5. Imprimiendo el carácter anterior en la consola.
  6. Definir una variable de cadena llamada mid2 y obtener el carácter en el índice 1 con una longitud de 1 de String st. La longitud de 1 significa que devolverá el mismo carácter en el índice inicial. El conteo comienza desde el índice inicial que usted especifique. Este carácter será asignado a la variable mid2.
  7. Imprimiendo el carácter anterior en la consola.
  8. Pausar la ventana de la consola por un momento esperando que el usuario tome medidas para cerrarla.
  9. Fin del subprocedimiento principal.
  10. Fin del módulo.

Una vez que te sientas cómodo extracAl trabajar con subcadenas, conviene saber cómo manejar los errores que puede generar el método.

Errores comunes en subcadenas y cómo evitarlos

El método Substring es estricto con los valores que se le pasan. Cuando un argumento queda fuera de los límites de la cadena, VB.Net lanza una excepción ArgumentOutOfRangeException y detiene el programa en tiempo de ejecución. Comprender estas reglas ayuda a evitar este error común.

El método genera la excepción en tres situaciones:

  • El índice de inicio es un número negativo.
  • El índice de inicio es mayor que la longitud de la cadena.
  • La suma de start_Index y sub_length apunta más allá del final de la cadena.

Un error frecuente es usar el resultado de la función IndexOf sin comprobarlo primero. Cuando IndexOf no encuentra el carácter, devuelve -1, y pasar -1 a Substring provoca una excepción. El siguiente código evita este problema:

Module Module1
    Sub Main()

        Dim st As String = "Guru99"
        Dim pos As Integer = st.IndexOf("9")

        If pos >= 0 Then
            Dim subst As String = st.Substring(pos)
            Console.WriteLine(subst)
        Else
            Console.WriteLine("Character not found")
        End If

        Console.ReadKey()
    End Sub

End Module

Validar el índice antes de la llamada garantiza que su aplicación funcione sin problemas, incluso cuando la cadena de entrada no contiene el carácter esperado.

Obtener una subcadena antes o después de un carácter.

Una tarea común es extracextraer el texto que aparece antes o después de un carácter específico, como dividir una dirección de correo electrónico en el signo @. VB.Net no proporciona una función específica para esto, pero se puede combinar IndexOf con Substring para lograrlo.

Texto que precede a un carácter: Llama a IndexOf para localizar el carácter y luego pasa ese índice como longitud a Substring:

Module Module1
    Sub Main()

        Dim email As String = "guru99@example.com"
        Dim position As Integer = email.IndexOf("@")

        Dim namePart As String = email.Substring(0, position)
        Console.WriteLine(namePart)

        Console.ReadKey()
    End Sub

End Module

El código imprime guru99, la parte de la cadena que se encuentra antes del signo @.

Texto después de un carácter: suma 1 al índice y deja que Substring recorra hasta el final de la cadena:

Dim domainPart As String = email.Substring(position + 1)
Console.WriteLine(domainPart)

Esto devuelve example.com. Cuando un carácter aparece más de una vez, utilice LastIndexOf en lugar de IndexOf para comenzar desde la última aparición en vez de la primera.

Subcadena frente a las funciones izquierda, derecha y media

Visual Basic hereda tres funciones de cadena heredadas de versiones anteriores: Left, Right y Mid. Se encuentran en el MicrosoftEl espacio de nombres .VisualBasic puede resultar más familiar para los desarrolladores que vienen del VB clásico.

  • Izquierda(cadena, n) Devuelve los primeros n caracteres de una cadena.
  • Derecha(cadena, n) Devuelve los últimos n caracteres de una cadena.
  • Medio (cuerda, inicio, longitud) Devuelve una porción desde una posición inicial, de forma muy similar a Substring.

La principal diferencia radica en cómo cuentan las posiciones. La función Mid se basa en 1, por lo que el primer carácter se ubica en la posición 1, mientras que el método Substring se basa en 0 y comienza a contar desde 0. Substring es el método estándar de .NET y se comporta de la misma manera en todos los lenguajes .NET, por lo que es la opción recomendada para código nuevo. Reserve Left, Right y Mid para el mantenimiento de proyectos antiguos de Visual Basic.

Preguntas Frecuentes

Sí. El método Substring se basa en el índice cero, por lo que el primer carácter de la cadena se ubica en el índice 0, el segundo en el índice 1, y así sucesivamente. Contar desde cero es importante al calcular la posición inicial.

No. Las cadenas en VB.Net son inmutables, por lo que el método Substring nunca altera la cadena original. Devuelve una cadena completamente nueva que contiene la cadena original.traccaracteres modificados, mientras que la cadena de origen mantiene su valor original sin cambios.

Subcadena extracts una porción continua de una cadena usando un índice y una longitud. Dividida Divide una cadena en una matriz de cadenas más pequeñas dondequiera que aparezca un delimitador, como una coma o un espacio. Usa Split para listas y Substring para segmentos.

Si se pasa una longitud de 0, se devuelve una cadena vacía (""), no Nothing. La llamada es válida y no genera ninguna excepción, siempre que el índice inicial se encuentre dentro de los límites de la cadena.

La función `Substring` conserva la porción de la cadena que especifique y descarta el resto. El método `Remove` hace lo contrario: elimina los caracteres a partir de un índice determinado y devuelve la cadena restante. Son operaciones complementarias.

Sí. Los espacios, las tabulaciones y los signos de puntuación cuentan como un carácter cada uno cuando el método Substring calcula el índice inicial y la longitud. Cada posición en la cadena, incluidos los espacios en blanco, se tiene en cuenta, no solo las letras visibles.

Sí. Copiloto de GitHub en Visual Studio 2026 convierte un comentario en lenguaje sencillo, como por ejemplotracConvirtiendo el texto anterior a una coma en una llamada Substring funcional con IndexOf. Siempre revise los índices generados para confirmar que se mantienen dentro del rango.

Sí. Visual Studio 2026 combina GitHub Copilot con inteligenciaCode para señalar índices que probablemente estén fuera de rango, sugerir argumentos correctos y completar llamadas a Substring mientras escribe, helping Debes evitar que se produzca una excepción ArgumentOutOfRangeException antes de ejecutar el programa.

Resumir este post con: