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.
¿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:
Hemos utilizado el siguiente código:
Explicación de Code:
- Creando un módulo llamado Módulo1.
- Iniciando el subprocedimiento principal.
- Definir una variable de cadena llamada st y asignarle el valor. Guru99 para ello.
- 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.
- Imprimiendo algo de texto y la subcadena anterior en la consola.
- Pausar la ventana de la consola por un momento esperando que el usuario tome medidas para cerrarla.
- Fin del subprocedimiento principal.
- 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:
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:
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:
Hemos utilizado el siguiente código:
Explicación de Code:
- Creando un módulo llamado Módulo1.
- Iniciando el subprocedimiento principal.
- Definir una variable de cadena llamada st y asignarle el valor. Guru99 para ello.
- 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.
- Imprimiendo el carácter anterior en la consola.
- 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.
- Imprimiendo el carácter anterior en la consola.
- Pausar la ventana de la consola por un momento esperando que el usuario tome medidas para cerrarla.
- Fin del subprocedimiento principal.
- 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.






