CsharpProgramación

Descubra cómo usar IndexOfRange() en C#

Aprenda a utilizar la función IndexOfRange() para mejorar su programación en C#

La función IndexOfRange() es una herramienta útil en el lenguaje de programación C# que permite encontrar el primer índice de un subconjunto de caracteres específicos dentro de una cadena de texto. Esta función se puede utilizar en situaciones comunes de programación, como la búsqueda de patrones en cadenas de texto y la validación de datos entrantes.

1. Buscar un rango de caracteres en una cadena

string cadena = "Hola Mundo";
int[] rangosDeCaracteres = { {'h', 'n'}, {'u', 'o'} };

foreach (var rango in rangosDeCaracteres)
{
    int indiceRango = cadena.IndexOfAny(rango);
    if (indiceRango != -1)
    {
        Console.WriteLine("Encontrado: " + new string(rango));
    }
}

2. Encontrar una subcadena dentro de un rango específico

string cadena = "1234567890";
int[] rangosDeCaracteres = { {'1', '9'} };

foreach (var rango in rangosDeCaracteres)
{
    int indiceRango = cadena.IndexOfAny(rango);
    if (indiceRango != -1)
    {
        Console.WriteLine("Encontrado: " + cadena.Substring(indiceRango, rango.Length));
    }
}

3. Comprobar si una cadena contiene un rango de caracteres

string cadena = "Hola Mundo";
int[] rangosDeCaracteres = { {'h', 'n'}, {'u', 'o'} };

bool contieneRango = rangosDeCaracteres.All(r => cadena.IndexOfAny(r) != -1);
Console.WriteLine("Contiene rango: " + contieneRango);

4. Encontrar el primer carácter de un rango en una cadena

string cadena = "Hola Mundo";
int[] rangosDeCaracteres = { {'h', 'n'}, {'u', 'o'} };

foreach (var rango in rangosDeCaracteres)
{
    int indiceRango = cadena.IndexOfAny(rango);
    if (indiceRango != -1)
    {
        Console.WriteLine("Primer carácter: " + cadena[indiceRango]);
        break;
    }
}

5. Encontrar el último carácter de un rango en una cadena

string cadena = "Hola Mundo";
int[] rangosDeCaracteres = { {'h', 'n'}, {'u', 'o'} };

foreach (var rango in rangosDeCaracteres)
{
    for (int i = cadena.Length - 1; i >= 0; i--)
    {
        if (cadena[i] == rango[0])
        {
            Console.WriteLine("Último carácter: " + cadena[i]);
            break;
        }
    }
}

6. Encontrar todas las ocurrencias de un rango de caracteres en una cadena

string cadena = "Hola Mundo";
int[] rangosDeCaracteres = { {'h', 'n'}, {'u', 'o'} };

foreach (var rango in rangosDeCaracteres)
{
    int indiceRango = cadena.IndexOfAny(rango);
    while (indiceRango != -1)
    {
        Console.WriteLine("Ocurrencia: " + new string(rango));
        indiceRango = cadena.IndexOfAny(rango, indiceRango + rango.Length);
    }
}

7. Encontrar el primer carácter de un rango en una cadena que no se repite

string cadena = "Hola Mundo";
int[] rangosDeCaracteres = { {'h', 'n'}, {'u', 'o'} };

foreach (var rango in rangosDeCaracteres)
{
    int indiceRango = cadena.IndexOfAny(rango);
    if (indiceRango != -1)
    {
        while (cadena.IndexOfAny(rango, indiceRango) != -1)
        {
            indiceRango = cadena.IndexOfAny(rango, indiceRango + 1);
        }
        Console.WriteLine("Primer carácter: " + cadena[indiceRango]);
        break;
    

8. Encontrar el último carácter de un rango en una cadena que no se repite

string cadena = "Hola Mundo";
int[] rangosDeCaracteres = { {'h', 'n'}, {'u', 'o'} };

foreach (var rango in rangosDeCaracteres)
{
    for (int i = cadena.Length - 1; i >= 0; i--)
    {
        if (cadena[i] == rango[0])
        {
            while (cadena.Substring(i).IndexOfAny(rango) != -1)
            {
                i = cadena.Length - 1 - cadena.Length + i;
            }
            Console.WriteLine("Último carácter: " + cadena[i]);
            break;
        

Conclusión

La función IndexOfRange() es una herramienta valiosa para los desarrolladores de C# que buscan mejorar la eficiencia y precisión de sus programas. Al utilizar esta función, puede encontrar fácilmente subcadenas dentro de cadenas más grandes y validar datos entrantes con mayor facilidad. Asegúrese de comprender su uso correcto y aplícalo en sus proyectos futuros para obtener mejores resultados.

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.