Métodos de strings

17/26

Lectura

Bienvenida o bienvenido a esta clase donde profundizaremos en los métodos de C#, específicamente en los métodos de strings.

Los métodos en C#

Un método es un bloque de código que contiene varias instrucciones que podemos ejecutar las veces que necesitemos. Son de gran ayuda cuando tienes que hacer lo mismo varias veces en un mismo programa para no repetir el mismo código una y otra vez.

En la clase anterior conocimos cómo invocar un método y utilizarlo cuantas veces necesitemos para realizar acciones específicas en nuestro programa. Ahora veamos algunos de estos métodos para el manejo de strings.

Métodos de strings

using System;
					
public class Program
{
	public static void Main()
	{
		string ClassTopic = "Métodos de strings";
		string School = "Platzi";
		Console.WriteLine("Estoy aprendiendo de "+ ClassTopic + " en " + School + ".");
	}
}

En la pieza de código anterior puedes ver un pequeño programa con dos variables tipo string y su impresión. Para este tipo de variables podemos usar una gran cantidad de métodos predefinidos dentro de la biblioteca estándar de C#.

Utilicemos estas dos variables strings para conocer algunos de ellos.

Clone()

	string SchoolClone = School.Clone().ToString();
	Console.WriteLine(SchoolClone);

El método Clone() crea un clon exacto de un string en una variable de tipo objeto. Por ello es necesario convertirlo a string utilizando ToString().

CompareTo()

Console.WriteLine(ClassTopic.CompareTo(School));
Console.WriteLine(School.CompareTo(SchoolClone));

Sirve para comparar el contenido de dos strings. Si son iguales devuelve 0 para true y si son diferentes retorna 1 para false. En este caso como School y SchoolClone son strings idénticos devolverá un 0. ¿Qué crees que se imprima en la primera línea?

Contains()

Console.WriteLine(School.Contains("Pla"));

Retorna True si el string contiene los caracteres que se pongan en los argumentos del método.

EndsWith()

Console.WriteLine(School.EndsWith("zi"));

Similar a Contains(), pero para comparar si los caracteres están al final del string.

StartsWith()

Console.WriteLine(School.StartsWith("Pl"));

Funciona de la misma manera que EndsWith(), pero en este caso comprueba si empieza con una serie de caracteres indicados.

Equals()

Console.WriteLine(School.Equals(SchoolClone));

Funciona de forma parecida a CompareTo(), pero para indicar si el contenido de ambos strings retorna True o False.

IndexOf()

Console.WriteLine(School.IndexOf("a"));

Regresa la posición dentro del string del carácter indicado en el argumento.

ToLower() y ToUpper()

Console.WriteLine(ClassTopic.ToLower());
Console.WriteLine(ClassTopic.ToUpper());

Convierten el string en todas letras minúsculas o mayúsculas.

Insert()

Console.WriteLine(School.Insert(6, " es educación online efectiva"));	

Inserta un nuevo string dentro de otro en la posición indicada dentro de los argumentos. En este caso es en 6 que es la posición después de la última letra de “Platzi”.

LastIndexOf()

Console.WriteLine(ClassTopic.LastIndexOf("s"));

Regresa la posición de la última vez que aparece el carácter. En este caso la letra “s” aparece varias veces en el string y así podemos notar cómo devuelve la última posición en la que aparece.

Remove()

Console.WriteLine(ClassTopic.Remove(6));

Elimina los caracteres del string a partir de la posición que le indiquemos hasta el final.

Replace()

Console.WriteLine(ClassTopic.Replace("s", "z"));

Reemplaza todos los caracteres por otro indicado. En este caso todas las “s” serán cambiadas por “z”.

Split()

string[] split = ClassTopic.Split(new char[] { 's' });		
		
        Console.WriteLine(split[0]);
        Console.WriteLine(split[1]);
        Console.WriteLine(split[2]);

Este es un caso especial donde creamos un nuevo string donde guardamos el string separado en trozos por la letra indicada en los argumentos del método. Para este caso se separa por la letra “s” en 3 trozos que son los que imprimimos.

Substring()

Console.WriteLine(ClassTopic.Substring(2,10));

Devuelve un substring o trozo de string de acuerdo a las posiciones indicadas en los argumentos.

ToCharArray()

School.ToCharArray();

Convierte el string en un arreglo de caracteres.

Trim()

string TextWithSpaces = "  hola, había espacios al principio y al final ";
Console.WriteLine(TextWithSpaces.Trim());

Elimina espacios al principio y al final de un string.

Tu reto

Ya conoces varios de los métodos que puedes utilizar con strings. Estos son los más comunes, pero existen unos más.

Como reto de esta clase crea un programa donde emplees por lo menos 5 de estos métodos de strings o de algún otro que investigues. Pon a volar tu creatividad y comparte en los comentarios el programa que creaste.


Te veo en la próxima donde obtendrás el superpoder de crear tus propios métodos y utilizarlos cuando los necesites.

Aportes 29

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Dada una fecha como un string, y tomando en cuenta el símbolo “/”, se obtienen el día, el mes y el año, de la siguiente forma:

string fecha = “27/12/2021”;
string[] split = fecha.Split(new char[] { ‘/’ });

Console.WriteLine($“Día: {split[0]}”);
Console.WriteLine($“Mes: {split[1]}”);
Console.WriteLine($“Año: {split[2]}”);

El metodo de split está medio raro jaja

Hola , hay un detalle con la lectura ,no se muestra la lectura solo su icono

Un aporte, cuando se utiliza el método Split(), si queremos separar por un caracter, podemos pasar el caracter directamente con comillas simples, de esta manera:

string information = "Gonzalo,21,Chile";
string[] split = information.split(',');

Console.WriteLine(split[0]);
Console.WriteLine(split[1]);
Console.WriteLine(split[2]);

Me parece extraño el método CompareTo, es decir, retorna 0 para true y 1 para false, cuando normalmente se asocia al 0 con false y 1 con true

Es verdad, la lectura no esta colocada, aparece vacia

Clone


            string food = "La comida menxicana es la mejor";

            string cloneString = food.Clone().ToString();
            Console.WriteLine(cloneString);

            string s = "You lose your keys. You lose your pass in.";
            string[] subs = s.Split(' ', '.'); //Omitiendo los puntos, caracter delimitador

            foreach(var sub in subs)
            {

                Console.WriteLine($"Substring: " + sub);
            }
            //Omitiendo las cadenas vacias 
            char[] separators = new char[] {' ', '.'};

            string[] subsClean = s.Split(separators, StringSplitOptions.RemoveEmptyEntries);

            foreach(var sub in subsClean)
            {
                Console.WriteLine($"Substrins with remove empty entries: " + sub);
            }

           

            char[] arrayChar = food.ToCharArray();
            Console.WriteLine(arrayChar);
           
            
            int cont = 0;
            
            for(int i = 0; i < arrayChar.Length; i++)
            {
              if(arrayChar[i] == 'a')
                {
                    cont++;  
                }
            }
            Console.WriteLine($"The word 'a' is repeat : " + cont);

Para que el ToCharArray() se ejecute debemos usar un for.

<Console.WriteLine("\nToCharArray()");
char[] chars = School.ToCharArray();

for(int i = 0; i < chars.Length; i++)
    Console.WriteLine(chars[i]);> 

using System;

namespace JugandoMetodosString
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            string textoPurebas = "Hello World!";

            string clonandoTexto = textoPurebas.Clone().ToString();
            Console.WriteLine(clonandoTexto);

            int comparandoTexto = clonandoTexto.CompareTo(textoPurebas);
            Console.WriteLine(comparandoTexto);

            bool contenidoTexto = textoPurebas.Contains("!");
            Console.WriteLine(contenidoTexto);

            bool finalizaConTeto = textoPurebas.EndsWith("d");
            Console.WriteLine(finalizaConTeto);

            bool empiezaConTexto = textoPurebas.StartsWith("e");
            Console.WriteLine(empiezaConTexto);

            bool igualdadTexto = textoPurebas.Equals(clonandoTexto);
            Console.WriteLine(igualdadTexto);

            string remplazoTexto = textoPurebas.Replace("World", "Universe");
            Console.WriteLine(remplazoTexto);

            string[] splitTexto = textoPurebas.Split(new char[] { 'e' });

            for (int i = 0; i < splitTexto.Length; i++)
            {
                Console.WriteLine(splitTexto[i]);
            }

        }
    }
}

Console.WriteLine("Hello, DBZ World!\n");
string ClassTopic = "Métodos de strings";
string School = "DBZ School";
Console.WriteLine("Estoy aprendiendo de " + ClassTopic + " en " + School + ".");
Console.WriteLine("\nHello, DBZ World! Clone\n");
string SchoolClone = School.Clone().ToString();
Console.WriteLine(SchoolClone);
Console.WriteLine("\nHello, DBZ World! Compare\n");
Console.WriteLine(ClassTopic.CompareTo(School));
Console.WriteLine(School.CompareTo(SchoolClone));
Console.WriteLine("\nHello, DBZ World! Contains\n");
Console.WriteLine(School.Contains("DBZ"));
Console.WriteLine("\nHello, DBZ World! End With\n");
Console.WriteLine(School.EndsWith("ool"));
Console.WriteLine("\nHello, DBZ World! Start With\n");
Console.WriteLine(School.StartsWith("DBZ"));
Console.WriteLine("\nHello, DBZ World! Equal\n");
Console.WriteLine(School.Equals(SchoolClone));
Console.WriteLine("\nHello, DBZ World! Index Of\n");
Console.WriteLine(School.IndexOf("a"));
Console.WriteLine("\nHello, DBZ World! Lower and Upper\n");
Console.WriteLine(ClassTopic.ToLower());
Console.WriteLine(ClassTopic.ToUpper());
Console.WriteLine("\nHello, DBZ World! Insert\n");
Console.WriteLine(School.Insert(4 , "Repasando Ando "));
Console.WriteLine("\nHello, DBZ World! Last index\n");
Console.WriteLine(ClassTopic.LastIndexOf("s"));
Console.WriteLine("\nHello, DBZ World! Remove\n");
Console.WriteLine(ClassTopic.Remove(6));
Console.WriteLine("\nHello, DBZ World! Replace\n");
Console.WriteLine(ClassTopic.Replace("s", "z"));
Console.WriteLine("\nHello, DBZ World! Split\n");
string[] split = ClassTopic.Split(new char[] { 's' });
Console.WriteLine(split[0]);
Console.WriteLine(split[1]);
Console.WriteLine(split[2]);
Console.WriteLine("\nHello, DBZ World! Substring\n");
Console.WriteLine(ClassTopic.Substring(2, 10));
Console.WriteLine("\nHello, DBZ World! To Array\n");
School.ToCharArray();
Console.WriteLine("\nHello, DBZ World! Trim\n");
string TextWithSpaces = "  hola, había espacios al principio y al final ";
Console.WriteLine(TextWithSpaces.Trim());

Mi reto:
Verificar si una palabra o frase es un palindromo

void Palindrome(string word)
{
    word = word.Trim();
    word = word.ToLower();
    word = word.Replace(" ", "");
    string wordReverse="";
    for (int i = word.Length-1;i>=0; i--)
    {
        wordReverse += word[i];
    }

    if (wordReverse == word)
    {
        Console.WriteLine("Is a palindrome");
    }
    else
    {
        Console.WriteLine("Not is a palindrome");
    }
}


Palindrome("Luz azul");//True

//No admite tildes

Está un poco engorrosa la sintaxis de C# para uno que inicio con python xd

Metodos

>   string Player = "Paladin";
     string City = "Cazordon";

        Console.WriteLine("Your election player was " + Player + " in " + City);

        //Method #1
        Console.WriteLine(Player.CompareTo(City));
        //Method #2
        Console.WriteLine(Player.Contains("lad"));
        //Method #3
        Console.WriteLine(City.IndexOf("o"));
        //Method #4
        Console.WriteLine(City.LastIndexOf("o"));
        //Method #5
        Console.WriteLine(City.ToUpper());
        Console.WriteLine(City.ToLower());

Aporte de código…

Estuvo muy interesante el ejercicio:

Console.WriteLine("Hello, World!");
Console.WriteLine("Manejo de Métodos comunes...\n");


string val1 = "string, predeterminado";
string val2 = "string";

Console.WriteLine("\n *** Clone *** \n");
string clone = val1.Clone() + " clonado";
Console.WriteLine(" string clonado:\t " + clone);

Console.WriteLine("\n *** Compare *** \n");
var result = val2.CompareTo(val1);
Console.WriteLine(" Comparación:\t " + result);

Console.WriteLine("\n *** Contains *** \n");
var result1 = val1.Contains("ing"); 
Console.WriteLine(" Contains:\t " + result1);

Console.WriteLine("\n *** EndWith *** \n");
var result2 = val2.EndsWith("ing");
Console.WriteLine(" EndsWith:\t " + result2);

Console.WriteLine("\n *** StartsWith *** \n");
var result3 = val2.StartsWith("ing");
Console.WriteLine(" StartsWith:\t " + result3);

Console.WriteLine("\n *** Equals *** \n");
var result4 = val1.Equals(val2);
Console.WriteLine(" Equals:\t " + result4);

Console.WriteLine("\n *** IndexOf *** \n");
var result5 = val1.IndexOf("i");
Console.WriteLine(" IndexOf:\t " + result5);

Console.WriteLine("\n *** ToLower *** \n");
Console.WriteLine(" ToLower:\t " + val2.ToLower());

Console.WriteLine("\n *** ToUpper *** \n");
Console.WriteLine(" ToUpper:\t " + val1.ToUpper());

Console.WriteLine("\n *** Insert *** \n");
Console.WriteLine(" Insert:\t " + val2.Insert(0, "Nuevo ingreso - "));

Console.WriteLine("\n *** LastIndexOf *** \n");
Console.WriteLine(" LastIndexOf:\t " + val1.LastIndexOf("r"));

Console.WriteLine("\n *** Remove *** \n");
Console.WriteLine(" Remove:\t " + val1.Remove(3));

Console.WriteLine("\n *** Replace *** \n");
Console.WriteLine(" Replace:\t " + val1.Replace("r", "j"));

Console.WriteLine("\n *** Split *** \n");
var result6 = val1.Split("r");
Console.WriteLine(" Split:\t "+ result6.Length + "\n");
for (int i = 0; i < result6.Length; i++)
{
    Console.WriteLine(result6[i]);
}

Console.WriteLine("\n *** SubString *** \n");
Console.WriteLine(" SubString:\t " + val1.Substring(2,2));

Console.WriteLine("\n *** ToArray *** \n");
var result7 = val2.ToArray();
Console.WriteLine(" ToArray:\t " + result7.Length);
for (int i = 0; i < result7.Length; i++)
{
    Console.WriteLine(result7[i]);
}

Console.WriteLine("\n *** Trim *** \n");
Console.WriteLine(" Trim:\t " + val1.Trim());

Aquí esta mi ejercicio espero en la otra clase aprender más sobre el método

split
Que no me quedo muy claro su propósito.

<// See https://aka.ms/new-console-template for more information
Console.WriteLine("Metodos de string");

string classTopic = "Juan Manuel Taborda Ortiz";
string School = "Platzi";
Console.WriteLine("Estoy aprendiendo de" + classTopic + "en" + School + ".");

//Clone Method

string SchoolClone = School.Clone().ToString();
Console.WriteLine(SchoolClone);

//Method CompareTo

Console.WriteLine(classTopic.CompareTo(School));
Console.WriteLine(School.CompareTo(SchoolClone));

//Method Contains
Console.WriteLine(School.Contains("Pla"));
Console.WriteLine(classTopic.Contains("Manuel"));

//Method EndsWith
Console.WriteLine(School.EndsWith("zi"));
Console.WriteLine(classTopic.EndsWith("iz"));

//Method StartsWith
Console.WriteLine(School.StartsWith("Pl"));
Console.WriteLine(classTopic.StartsWith("Juan"));

//Method Equals
Console.WriteLine(School.Equals("SchoolClone"));

//Method Split
string[] split = School.Split(new char[] {'s'});
Console.WriteLine(split[0]);
Console.WriteLine(split[1]);
Console.WriteLine(split[2]);




> 

Split()

Podemos hacer una lista de artículos separando por comas, esto hace que se guarde cada uno de los artículos en un arreglo.

string listaArticulos = "manzanas,avena,yogurt,platanos";
string[] split = listaArticulos.Split(new char[] { ',' });
for (int i = 0; i < split.Length; i++)
{
    Console.WriteLine(split[i]);
}

Podemos usar el .Split para leer un .txt indicándole que separe por el caracter que le indiquemos.

ToCharArray()

Convierte el string en un arreglo de caracteres.

string School = "Platzi";
char[] letras = School.ToCharArray();
for (int i = 0; i < letras.Length; i++)
{
    Console.WriteLine(letras[i]);
}
string classTopic = "Métodos de strings";
string[] split = classTopic.Split(new char[] {'s'}); // Split elimina la letra por la cual se partió el string

for (int i = 0; i < split.Length; i++)
{
    Console.WriteLine(split[i]); // puede verse el ejemplo aquí
}

Console.WriteLine(classTopic.Substring(0, 7));


char[] chars = classTopic.ToCharArray();
for (int i = 0;i < chars.Length; i++)
{
    Console.WriteLine(chars[i]);
}

string pruebaEspacios = "   En este string tenemos espacios al   inicio y al final  ";
Console.WriteLine(pruebaEspacios);
Console.WriteLine(pruebaEspacios.Trim());

Reto cumplido:

using System;

namespace StringMethods
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string Pizzeria = "Manew Pizzeria";
            string OrderedPizza = "Margarita";
            Console.WriteLine("I am in " + Pizzeria.ToUpper() + " and I will order a " + OrderedPizza.Replace("Margarita", "Pepperoni") + " pizza");

            Console.WriteLine();
            
            Console.WriteLine(Pizzeria.Contains("new Pi"));

            Console.WriteLine();

            string[] split = Pizzeria.Split(new char[] { 'e' });
            Console.WriteLine(split[0]);
            Console.WriteLine(split[1]);
            Console.WriteLine(split[2]);

            Console.WriteLine();

            Console.WriteLine(OrderedPizza.Remove(5));
        }
    }
}

Hola, comparto mis 5 metodos, en un ejercicio con un nombre completo:

 String nameAll = "Juan,Daniel,Ramirez,Coroy";
            
            string[] split = nameAll.Split(new char[] { ',' });
            Console.WriteLine("Metodo split");
            Console.WriteLine(split[0]);
            Console.WriteLine(split[1]);
            Console.WriteLine(split[2]);
            Console.WriteLine(split[3] + "\n");
            
            Console.WriteLine("Metodo subString");
            Console.WriteLine(nameAll.Substring(2, 10));
            
            Console.WriteLine("Metodo trim");
            String nameWithSpace = " Juan Daniel Ramirez Coroy ";
            Console.WriteLine(nameWithSpace.Trim() + "\n");

            Console.WriteLine("Metodo remove");
            String onlyNames = nameAll.Remove(11);
            Console.WriteLine(onlyNames + "\n");

            Console.WriteLine("Metodo ToUpper");
            Console.WriteLine(nameWithSpace.ToUpper());

            Console.ReadLine();

Esto hice yo, una lista de bandas


using System;

namespace StringMethods
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Rock and Metal bands list");

            string[] BandLists = { "mayhem", "iron MaidEN", "AmON AMARTH", "BaTHORY", "Scorpions", "JUDAS PRIEST", "PINK FLOYD", "megadeth", "transMetal", "helloween" };
            int Counter;
            char PrevChar = '\0';
            foreach (string Band in BandLists)
            {
                Counter = 0;
                foreach (char BandPart in Band)
                {
                    if (Counter == 0 || PrevChar == ' ')
                        Console.Write(char.ToUpper(BandPart));
                    else
                        Console.Write(char.ToLower(BandPart));
                    Counter++;
                    PrevChar = BandPart;
                }
                Console.WriteLine(" ");
            } 
        }
    }
}

Hola! voy a dejar los metodos que me parecieron mas interesantes!

/*Reto Platzisero*/
            Console.WriteLine("\nEsto es parte del Reto de Platzi!\n");

            //toma las variables de un string y las concatena
            Console.WriteLine("Método string.Concat() ");
            string phrase1 = "Estoy concatenando ";
            string phrase2 = "con un metodo ";
            string phrase3 = "que brinda C#!";
            string phrase4 = " ''Este texto fue añadido por un argumento del metodo Join. ''";

            string[] phrases = { phrase1, phrase2, phrase3, phrase4 };

            Console.WriteLine(string.Concat(phrases[0], phrases[1], phrases[2]));


            Console.WriteLine("Método string.Join() ");

            //agrega el primer parametro, dentro del arreglo pasado por el segundo, entre las posiciones pasadas en el 3 y 4 parametro
            string newPhrase = string.Join(phrase4, phrases, 1, 2);

            Console.WriteLine(string.Concat(phrases[0], newPhrase));

            Console.WriteLine("Método string.ToCharArray() ");

            //toma una string y la convierte en un array de chars
            string toCharMetod = "Esto es lo que hace un ToCharArray()";
            char[] charArray = toCharMetod.ToCharArray();

            for (int l = 0; l < toCharMetod.Length; l++)
            {
                Console.WriteLine(toCharMetod[l]);
            }
            Console.WriteLine("Asi es como se ve el array, recorrido a travez de un ciclo for");

            //Otro metodo para "copiar" un string

            string str1 = "n95";
            string str2 = "n96";

            Console.WriteLine("las lineas Originales son: {0}, {1}.", str1, str2);
            Console.WriteLine("son iguales? {0} ", string.Equals(str1, str2));

            Console.WriteLine("vamos a copiarlas con el metodo ToString();");

            str2 = str1.ToString();

            Console.WriteLine("las lineas despues de copiarlas son: {0}, {1}.", str1, str2);
            Console.WriteLine("ahora son iguales? {0} ", string.Equals(str1, str2));

            //rellena un string con el argumento especificado por parametro, añadiendo todos los caracteres necesarios hasta llegar al indicado en el argumento.

            char paddingChar = 'a';
            string phrase5 = "todo esto aprendi en Platzi!";
            Console.WriteLine(phrase5.PadLeft(50,paddingChar));
            Console.WriteLine(phrase5.PadRight(60, paddingChar));

Este es el Output:

using System;

namespace Challenge
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string rights = "   ©2021 Developed by Maxcodev  ";
            Console.WriteLine(rights.Trim().ToUpper() + "\nWelcome to Easy Sumatory\nNow please type the first number, you can use decimal with dot or comma (Example: 2,5)");
            float a = float.Parse(Console.ReadLine());
            Console.WriteLine("Now type the second Number");
            float b = float.Parse(Console.ReadLine());
            float result = a + b;
            Console.WriteLine("The result is: " + result);
            Console.WriteLine(result.ToString() + " es el resultado");
        }
    }
}

Reto

Console.WriteLine("\nVerifiquemos si la palabra introducida es un palíndromo");
string text = Console.ReadLine();
//Pasamos a minúsculas
text = text.ToLower();
//Quitamos espacios no deseados
text = text.Trim();
text = text.Replace(" ","");

// Clonamos el texto
string auxText = text.Clone().ToString();
//Pasamos el texto a un Array de caracteres
char[] textArray = text.ToCharArray();

// Invertimos el orden de los caracteres
textArray = text.Reverse().ToArray();

// Unimos el Array de caracteres en una String sin espacios
auxText = String.Join("", textArray);

// Verificamos si es un palíndromo  e imprimimos el resultado
Console.WriteLine("¿El texto es un palíndromo?: " + (auxText == text));

Este es el código de los diferentes ejemplos de los métodos string de la lectura.

Nota: Para el ejemplo de ToCharArray() se necesito un ejemplo mejor que el que se muestra. Ahí lo modifique un poco , chéquenlo y me dicen que opinan.

static void Main(string[] args)
        {
            //En la pieza de código anterior puedes ver un pequeño programa con dos variables tipo string y su impresión.
            //Para este tipo de variables podemos utilizar una gran cantidad de métodos predefinidos dentro de la biblioteca estándar de C#.
            //Utilicemos estas dos variables strings para conocer algunos de ellos.
            string ClassTopic = "Métodos de strings";
            string School = "Platzi";
            Console.WriteLine("Estoy aprendiendo de " + ClassTopic + " en " + School + ".");


            //Clone()
            //El método Clone() crea un clon exacto de un string en una variable de tipo objeto. Por ello es necesario convertirlo a string utilizando ToString().
            Console.WriteLine("\n-----------------");
            Console.WriteLine("Clone() \n");

            string SchoolClone = School.Clone().ToString();
            Console.WriteLine(SchoolClone);

            Console.WriteLine("-----------------");


            //CompareTo()
            //Sirve para comparar el contenido de dos strings.
            //Si son iguales devuelve 0 para true y si son diferentes retorna 1 para false. En este caso como School y SchoolClone son strings idénticos devolverá un 0.
            //¿Qué crees que se imprima en la primera línea?
            Console.WriteLine("-----------------");
            Console.WriteLine("CompareTo() \n");

            Console.WriteLine(ClassTopic.CompareTo(School));
            Console.WriteLine(School.CompareTo(SchoolClone));

            Console.WriteLine("-----------------");


            //Contains()
            //Retorna True si el string contiene los caracteres que se pongan en los argumentos del método.
            Console.WriteLine("-----------------");
            Console.WriteLine("Contains() \n");

            Console.WriteLine(School.Contains("lat"));

            Console.WriteLine("-----------------");


            //EndsWith()
            //Similar a Contains(), pero para comparar si los caracteres están al final del string.
            Console.WriteLine("-----------------");
            Console.WriteLine("EndsWith() \n");

            Console.WriteLine(School.EndsWith("zi"));

            Console.WriteLine("-----------------");


            //StartsWith()
            //Funciona de la misma manera que EndsWith(), pero en este caso comprueba si empieza con una serie de caracteres indicados.
            Console.WriteLine("-----------------");
            Console.WriteLine("StartsWith() \n");

            Console.WriteLine(School.StartsWith("Pl"));

            Console.WriteLine("-----------------");


            //Equals()
            //Funciona de forma parecida a CompareTo(), pero para indicar si el contenido de ambos strings retorna True o False.
            Console.WriteLine("-----------------");
            Console.WriteLine("Equals() \n");

            Console.WriteLine(School.Equals(SchoolClone));

            Console.WriteLine("-----------------");

            //IndexOf()
            //Regresa la posición dentro del string del carácter indicado en el argumento.
            Console.WriteLine("-----------------");
            Console.WriteLine("IndexOf() \n");

            Console.WriteLine(School.IndexOf("a"));

            Console.WriteLine("-----------------");


            //ToLower() y ToUpper()
            //Convierten el string en todas letras minúsculas o mayúsculas.
            Console.WriteLine("-----------------");
            Console.WriteLine("ToLower() y ToUpper() \n");

            Console.WriteLine(ClassTopic.ToLower());
            Console.WriteLine(ClassTopic.ToUpper());

            Console.WriteLine("-----------------");


            //Insert()
            //Inserta un nuevo string dentro de otro en la posición indicada dentro de los argumentos.
            //En este caso es en 6 que es la posición después de la última letra de “Platzi”.
            Console.WriteLine("-----------------");
            Console.WriteLine("Insert() \n");

            Console.WriteLine(School.Insert(6, " es educación online efectiva"));

            Console.WriteLine("-----------------");


            //LastIndexOf()
            //Regresa la posición de la última vez que aparece el carácter.
            //En este caso la letra “s” aparece varias veces en el string y así podemos notar cómo devuelve la última posición en la que aparece.
            Console.WriteLine("-----------------");
            Console.WriteLine("LastIndexOf() \n");

            Console.WriteLine(ClassTopic.LastIndexOf("s"));

            Console.WriteLine("-----------------");

            //Remove()
            //Elimina los caracteres del string a partir de la posición que le indiquemos hasta el final.
            Console.WriteLine("-----------------");
            Console.WriteLine("Remove() \n");

            Console.WriteLine(ClassTopic.Remove(6));

            Console.WriteLine("-----------------");


            //Replace()
            //Reemplaza todos los caracteres por otro indicado. En este caso todas las “s” serán cambiadas por “z”.
            Console.WriteLine("-----------------");
            Console.WriteLine("Replace() \n");

            Console.WriteLine(ClassTopic.Replace("s", "z"));

            Console.WriteLine("-----------------");


            //Split()
            //Este es un caso especial donde creamos un nuevo string donde guardamos el string separado en trozos por la letra indicada en los argumentos del método.
            //Para este caso se separa por la letra “s” en 3 trozos que son los que imprimimos.
            Console.WriteLine("-----------------");
            Console.WriteLine("Split() \n");

            string[] split = ClassTopic.Split(new char[] { 's' });

            Console.WriteLine(split[0]);
            Console.WriteLine(split[1]);
            Console.WriteLine(split[2]);

            Console.WriteLine("-----------------");


            //Substring()
            //Devuelve un substring o trozo de string de acuerdo a las posiciones indicadas en los argumentos.
            Console.WriteLine("-----------------");
            Console.WriteLine("Substring() \n");

            Console.WriteLine(ClassTopic.Substring(2, 10));

            Console.WriteLine("-----------------");

            //ToCharArray()
            //Convierte el string en un arreglo de caracteres.
            Console.WriteLine("-----------------");
            Console.WriteLine("ToCharArray() \n");

            char[] arreglo;
            arreglo =School.ToCharArray();

            Console.WriteLine(arreglo[0]);
            Console.WriteLine(arreglo[1]);
            Console.WriteLine(arreglo[2]);
            Console.WriteLine(arreglo[3]);
            Console.WriteLine(arreglo[4]);
            Console.WriteLine(arreglo[5]);

            Console.WriteLine("-----------------");

            //Trim()
            //Elimina espacios al principio y al final de un string.
            Console.WriteLine("-----------------");
            Console.WriteLine("Trim() \n");

            string TextWithSpaces = "      hola, había espacios al principio y al final    ";
            Console.WriteLine(TextWithSpaces.Trim());

            Console.WriteLine("-----------------");
        }

Consola:

Ok 😕 No hay lectura, ¿Qué procede?