Trabajar con cadenas - FernandoCalmet/csharp-essential GitHub Wiki

Métodos de cadena Substring, IndexOf, LastIndexOf

Substring (int startIndex) es el método que devuelve parte de la cadena desde startIndex el final de la cadena.

Substring (int startIndex, int length) es el método que devuelve parte de la cadena con una longitud definida de startIndex.

Veamos esto en la práctica:

class Program
{
    static void Main(string[] args)
    {
        string testString = "this is some string to use it for our example.";

        string partWithoutLength = testString.Substring(10);
        string partWithLength = testString.Substring(5, 10);

        Console.WriteLine(partWithoutLength);
        Console.WriteLine(partWithLength);

        Console.ReadKey();
    }
}

El métodoIndexOf() es el que devuelve la posición del valor entero de la primera aparición del carácter, o una cadena en la cadena seleccionada. Si ese valor no existe, el método devolverá -1.

Hay diferentes sobrecargas de este método: IndexOf(char value), IndexOf(string value), IndexOf(char value, int startIndex), IndexOf(string value, int startIndex) etc. Si utilizamos este método con el parámetro startIndex, no vamos a buscar desde el principio de la cadena, pero desde esa posición hasta el final:

int charPosition = testString.IndexOf('i');
int stringPosition = testString.IndexOf("some");
int charPosWithStartIndex = testString.IndexOf('s', 10);
int stringPosWithStartIndex = testString.IndexOf("some", 10);

LastIndexOf() es el método que devuelve la posición de la última aparición de un carácter o un valor de cadena. Este método tiene las mismas sobrecargas que el método IndexOf:

int lastPosition = testString.LastIndexOf('o');
int stringLastPosition = testString.LastIndexOf("is");

Contiene, StartsWith, EndsWith

Contiene (valor de cadena) es el método que devuelve verdadero si una cadena contiene el valor; de lo contrario, devolverá falso:

StartsWith (valor de cadena) es el método que devuelve verdadero si una cadena comienza con el valor ; de lo contrario, devuelve falso. A diferencia de este método, el método EndsWith (valor de cadena) devuelve verdadero si una cadena termina con el valor ; de lo contrario, devuelve falso:

Quitar, insertar

El método Remove(int startIndex) elimina los caracteres de la cadena desde la startIndex posición hasta el final de la cadena y devuelve esa nueva cadena. Hay un método sobrecargado Remove(int startIndex, int count) que elimina un número específico de caracteres de la cadena desde la posición del índice inicial. Con el parámetro de conteo decidimos cuántos caracteres queremos eliminar:

string loweredString = testString.Remove(10);
string loweredStringWithCount = testString.Remove(10, 9);

Insert(int startIndex, string value) es el método que inserta el valor en la cadena desde la startIndex posición y devuelve una cadena modificada:

string stringWithInsert = testString.Insert(13, "UPDATED ");

ToLower, ToUpper

ToLower() devuelve una nueva cadena con todas las letras minúsculas:

string upperCaseString = testString.ToUpper();

Ejemplos de uso de métodos de cadena

Ejemplo 1: Cree una aplicación que acepte el nombre y el apellido, separados por espacios, como entrada, y luego imprima el nombre en una fila y el apellido en otra fila:

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Enter your full name, blank space separated");
        string fullName = Console.ReadLine();

        int blankPosition = fullName.IndexOf(' ');
        string name = fullName.Substring(0, blankPosition);
        string lastName = fullName.Substring(blankPosition + 1);

        Console.WriteLine(name);
        Console.WriteLine(lastName);

        Console.ReadKey();
    }
}

Ejemplo 2: Cree una aplicación que acepte como entrada una oración y elimine la primera y la última palabra de esa oración:

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Enter your sentence: ");

        string sentence = Console.ReadLine();

        int firstBlankPosition = sentence.IndexOf(' ');
            
        string withoutFirstWord = sentence.Remove(0, firstBlankPosition + 1);

        int lastBlankPosition = withoutFirstWord.LastIndexOf(' ');

        string withoutFirstAndLast = withoutFirstWord.Remove(lastBlankPosition);

        Console.WriteLine(withoutFirstAndLast);

        Console.ReadKey();
    }
}

Este es el resultado:

Enter your sentence:
This is a new sentence with several words.
is a new sentence with several