CodeGym /Cursos /C# SELF /Métodos principales de la clase string

Métodos principales de la clase string

C# SELF
Nivel 9, Lección 3
Disponible

1. Introducción

En la práctica, las tareas más comunes con strings suelen ser estas:

  • Obtener la longitud de la cadena (y saber si está vacía).
  • Cambiar el case de las letras (poner TODO EN MAYÚSCULAS o todo en minúsculas).
  • Ver si la cadena contiene una palabra o símbolo buscado.
  • Reemplazar una "palabra fea" por algo más decente.
  • Dividir la cadena por un separador ("lista de teléfonos separados por coma").
  • Quitar espacios al principio y al final de la cadena.
  • Obtener una parte de la cadena (por ejemplo, las 3 primeras letras del apellido).
  • Comparar dos cadenas — ver si son iguales ignorando el case.

Y para cada una de estas tareas, la clase string tiene su propio método.

Tabla de métodos clave

Operación Método/Propiedad Ejemplo
Longitud de la cadena
Length
name.Length
Primer carácter
[0]
name[0]
Último carácter
[name.Length - 1]
name[name.Length - 1]
A minúsculas
ToLower()
name.ToLower()
A mayúsculas
ToUpper()
name.ToUpper()
Comprobar si hay subcadena
Contains()
name.Contains("Ivan")
Posición de subcadena
IndexOf()
name.IndexOf("a")
Extraer parte de la cadena
Substring()
name.Substring(1, 3)
Comparar cadenas
Equals(), ==
name.Equals("Petr")
Quitar espacios
Trim()
name.Trim()
Dividir por separador
Split()
csv.Split(',')
Unir array en cadena
string.Join()
string.Join("-", array)
Reemplazar parte
Replace()
text.Replace("old", "new")
¿Cadena vacía?
IsNullOrEmpty()
string.IsNullOrEmpty(name)

Hoy vamos a ver algunos de ellos.

2. Trabajando con la cadena como un array

Longitud de la cadena: propiedad Length

Lo más básico — saber cuántos caracteres tiene la cadena. Para eso usamos la propiedad Length. Ejemplo:

string name = "Arkadiy";
Console.WriteLine(name.Length);  // Mostrará: 7
  • Length — es una propiedad (no un método), así que no lleva paréntesis.
  • Si la cadena está vacía (""), la longitud será 0.

A veces es útil comprobar la longitud antes de hacer algo "peligroso" (por ejemplo, sacar una subcadena).

Obtener carácter por índice: indexador [i]

Como con los arrays: una cadena es un array de caracteres. Ejemplo:

string hello = "Hello";
char firstChar = hello[0]; 	// 'P'
char lastChar = hello[^1]; 	// 't'
Console.WriteLine(firstChar);
  • ¡El índice empieza en cero!
  • Ojo: si accedes a un índice que no existe (hello[100]), te va a saltar una excepción.

3. Comparación de cadenas

Operadores == y != para strings

En C#, estos operadores simplemente comparan dos cadenas por su contenido.

string word1 = "Hello";
string word2 = "Hello";
bool areEqual = word1 == word2; // true

Método Equals

A diferencia del operador ==, el método Equals permite pasar parámetros. Por ejemplo, comparar cadenas sin importar mayúsculas/minúsculas — cuando "Mama" == "mama" y también igual a "MAMA". Ejemplo:

string pass1 = "Qwerty";
string pass2 = "qwerty";

// comparación estándar con case
bool isSame = pass1.Equals(pass2); // false

// comparación ignorando case
bool ignoreCase = pass1.Equals(pass2, StringComparison.OrdinalIgnoreCase); // true

4. Cambio de case

Para convertir una cadena a mayúsculas (o minúsculas), la clase string tiene 2 métodos especiales: ToLower() y ToUpper().

¿Quieres que el usuario vea tu mensaje en plan "¡IMPORTANTE!"? ¿O necesitas poner todos los nombres en minúsculas para comparar? Es fácil:

string text = "I am not afraid of the gray wolf!";
Console.WriteLine(text.ToUpper()); // MNE NE STRASHEN SERYI VOLK!
Console.WriteLine(text.ToLower()); // mne ne strashen seryi volk!
  • Ojo: la cadena original no cambia!
  • Se puede usar para comparar cadenas sin importar el case.

5. Quitar espacios de más

¿Y si el usuario mete espacios por accidente (o a propósito, ya sabes cómo son)? Trim te salva. Hay tres variantes:

  • Trim — quita todos los espacios al principio y al final de la cadena;
  • TrimStart — quita espacios al principio;
  • TrimEnd — quita espacios al final.
string raw = "   Gosha   ";
string cleaned = raw.Trim(); 		// "Gosha"
Console.WriteLine($"[{cleaned}]");

6. Obtener subcadena: Substring

A veces necesitas sacar solo una parte de la cadena.

string word = "Hello";
string part = word.Substring(2);      // "ivet"
string part2 = word.Substring(2, 3);  // "ive"
  • Substring(startIndex) — desde el carácter startIndex hasta el final.
  • Substring(startIndex, length) — desde startIndex tantos caracteres como diga length.

Ojo: si te pasas del límite de la cadena o length < 0, te va a saltar una excepción!

7. Comprobar si la cadena está vacía

Antes de usar una cadena (por ejemplo, en interpolación), mejor comprobar que no es null ni está vacía, si no puedes tener errores o resultados raros.

a) Comprobar null con el operador ==

string s = null;
if (s == null)
    Console.WriteLine("La cadena es null");

Pega: no detecta la cadena vacía ("").

b) Comprobar con string.IsNullOrEmpty()

Comprueba tanto null como la cadena vacía:

string s = "";
if (string.IsNullOrEmpty(s))
    Console.WriteLine("La cadena está vacía o es null");

c) Comprobar con string.IsNullOrWhiteSpace()

Además, tiene en cuenta cadenas que solo tienen espacios, tabs y otros caracteres “invisibles”:

string s = "     ";
if (string.IsNullOrWhiteSpace(s))
    Console.WriteLine("La cadena está vacía, es null o solo tiene espacios");

8. Errores típicos al trabajar con métodos de string

  • Lo más común — olvidar que los strings son inmutables (immutable), como ya vimos arriba.
  • Otro fallo típico — olvidar la sensibilidad al case al buscar o comparar.

Por ejemplo, si el usuario mete el nombre "andrey", pero en la lista ya está "Andrey", usar simplemente Contains o == puede no funcionar si no pones ambos strings en el mismo case o usas la sobrecarga adecuada del método.

También cuidado con los métodos que devuelven índices. Los índices empiezan en cero, y si te devuelve -1, significa que no encontró nada, no que sea "índice 0".

2
Tarea
C# SELF, nivel 9, lección 3
Bloqueada
Conteo de la longitud de una cadena y sus caracteres inicial y final
Conteo de la longitud de una cadena y sus caracteres inicial y final
2
Tarea
C# SELF, nivel 9, lección 3
Bloqueada
Eliminación de espacios y cambio de mayúsculas
Eliminación de espacios y cambio de mayúsculas
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION