Introducción
Ya vimos cómo comprobar si una cadena termina con determinado carácter en JavaScript, ahora es turno del lenguaje de programación C#. Veamos cómo comprobar si cadena termina con en C#.
Comprobar si cadena termina con en C#
El método lo tienen todas las cadenas. Se llama EndsWith y vamos a ver algunos ejemplos.
class Ejemplo{
public static void Main(){
string saludo = "Hola, mundo";
if(saludo.EndsWith("o")){
System.Console.WriteLine("Termina con la letra o");
}else{
System.Console.WriteLine("No termina con o");
}
}
}
Usamos el método EndsWith
y le pasamos una subcadena o carácter. Veamos ahora este caso en donde termina con O mayúscula:
class Ejemplo{
public static void Main(){
string saludo = "Hola, mundO";
if(saludo.EndsWith("o")){
System.Console.WriteLine("Termina con la letra o");
}else{
System.Console.WriteLine("No termina con o");
}
}
}
En ese caso imprimirá “No termina con o” ya que termina con la letra mayúscula, no con minúscula.
Ignorar mayúsculas y minúsculas
Para eso sirve el segundo argumento que le pasamos a EndsWith, el cual es un booleano que indica si debe ignorar las mayúsculas y minúsculas.
Cuando pasamos el segundo argumento estamos forzados a también pasar el tercero, que es un objeto de tipo CultureInfo.
¿Por qué? bueno, normalmente creemos que las mayúsculas son el alfabeto ABCDE… y las minúsculas abcde… pero es un error.
En el alfabeto de inglés es correcto, pero tomemos el del español. Hay palabras acentuadas como José, ahí la é es una letra en minúscula y C# provee la manera de identificar el idioma con CultureInfo.
El código queda así:
using System.Globalization;
class Ejemplo{
public static void Main(){
string saludo = "Hola, mundO";
CultureInfo ci = new CultureInfo("es-LA");
if(saludo.EndsWith("o", true, ci)){
System.Console.WriteLine("Termina con la letra o");
}else{
System.Console.WriteLine("No termina con o");
}
}
}
Le pasamos un objeto de tipo CultureInfo de es-LA, algo así como español latinoamericano. De esta manera comparará perfectamente. Veamos el caso de José:
using System.Globalization;
class Ejemplo{
public static void Main(){
string saludo = "ME LLAMO JOSÉ"; // En mayúscula
CultureInfo ci = new CultureInfo("es-LA");
if(saludo.EndsWith("é", true, ci)){
System.Console.WriteLine("Termina con la letra é");
}else{
System.Console.WriteLine("No termina con é");
}
}
}
La salida es:
Termina con la letra é