Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os directorios.
.NET proporciona varios métodos para comparar los valores de las cadenas. En la tabla siguiente se enumeran y describen los métodos de comparación de valores.
| Nombre del método | Uso |
|---|---|
| String.Compare | Compara los valores de dos cadenas. Devuelve un valor entero. |
| String.CompareOrdinal | Compara dos cadenas de texto sin tener en cuenta la cultura local. Devuelve un valor entero. |
| String.CompareTo | Compara el objeto de cadena actual con otra cadena. Devuelve un valor entero. |
| String.StartsWith | Determina si una cadena comienza con la cadena pasada. Devuelve un valor booleano. |
| String.EndsWith | Determina si una cadena termina con el texto proporcionado. Devuelve un valor booleano. |
| String.Contains | Determina si un carácter específico o una cadena aparece dentro de otra cadena. Devuelve un valor booleano. |
| String.Equals | Determina si dos cadenas son iguales. Devuelve un valor booleano. |
| String.IndexOf | Devuelve la posición de índice de un carácter o una cadena, comenzando desde el principio de la cadena que está examinando. Devuelve un valor entero. |
| String.LastIndexOf | Devuelve la posición de índice de un carácter o cadena, comenzando desde el final de la cadena que está examinando. Devuelve un valor entero. |
método Compare
El método estático String.Compare proporciona una manera exhaustiva de comparar dos cadenas. Este método es culturalmente consciente. Puede usar esta función para comparar dos cadenas o subcadenas de dos cadenas. Además, se proporcionan sobrecargas que tienen en cuenta o ignoran las diferencias de mayúsculas y minúsculas, así como las variaciones culturales. En la tabla siguiente se muestran los tres valores enteros que este método podría devolver.
| Valor devuelto | Condición |
|---|---|
| Entero negativo | La primera cadena precede a la segunda cadena en el criterio de ordenación. -o- La primera cadena es null. |
| 0 | La primera cadena y la segunda cadena son iguales. -o- Ambas cadenas son null. |
| Entero positivo -o- 1 |
La primera cadena sigue la segunda cadena en el criterio de ordenación. -o- La segunda cadena es null. |
Importante
El String.Compare método está pensado principalmente para su uso al ordenar o clasificar cadenas. No debe usar el String.Compare método para probar la igualdad (es decir, para buscar explícitamente un valor devuelto de 0 sin tener en cuenta si una cadena es menor o mayor que la otra). En su lugar, para determinar si dos cadenas son iguales, use el String.Equals(String, String, StringComparison) método .
En el ejemplo siguiente se usa el String.Compare método para determinar los valores relativos de dos cadenas.
string string1 = "Hello World!";
Console.WriteLine(String.Compare(string1, "Hello World?"));
Dim string1 As String = "Hello World!"
Console.WriteLine(String.Compare(string1, "Hello World?"))
En este ejemplo se muestra -1 en la consola.
El ejemplo anterior es sensible a la cultura de forma predeterminada. Para realizar una comparación de cadenas insensible a la cultura, use una sobrecarga del String.Compare método que le permite especificar la cultura a utilizar proporcionando un parámetro de cultura. Para obtener un ejemplo que muestra cómo usar el método String.Compare para realizar una comparación insensible a la cultura, véase Comparaciones de cadenas insensibles a la cultura.
método CompareOrdinal
El String.CompareOrdinal método compara dos objetos de cadena sin tener en cuenta la referencia cultural local. Los valores devueltos de este método son idénticos a los valores devueltos por el Compare método de la tabla anterior.
Importante
El String.CompareOrdinal método está pensado principalmente para su uso al ordenar o clasificar cadenas. No debe usar el String.CompareOrdinal método para probar la igualdad (es decir, para buscar explícitamente un valor devuelto de 0 sin tener en cuenta si una cadena es menor o mayor que la otra). En su lugar, para determinar si dos cadenas son iguales, use el String.Equals(String, String, StringComparison) método .
En el ejemplo siguiente se usa el CompareOrdinal método para comparar los valores de dos cadenas.
string string1 = "Hello World!";
Console.WriteLine(String.CompareOrdinal(string1, "hello world!"));
Dim string1 As String = "Hello World!"
Console.WriteLine(String.CompareOrdinal(string1, "hello world!"))
En este ejemplo se muestra -32 en la consola.
método CompareTo
El String.CompareTo método compara la cadena que el objeto de cadena actual encapsula con otra cadena o objeto. Los valores devueltos de este método son idénticos a los valores devueltos por el String.Compare método de la tabla anterior.
Importante
El String.CompareTo método está pensado principalmente para su uso al ordenar o clasificar cadenas. No debe usar el String.CompareTo método para probar la igualdad (es decir, para buscar explícitamente un valor devuelto de 0 sin tener en cuenta si una cadena es menor o mayor que la otra). En su lugar, para determinar si dos cadenas son iguales, use el String.Equals(String, String, StringComparison) método .
En el ejemplo siguiente se usa el String.CompareTo método para comparar el string1 objeto con el string2 objeto .
string string1 = "Hello World";
string string2 = "Hello World!";
int MyInt = string1.CompareTo(string2);
Console.WriteLine( MyInt );
Dim string1 As String = "Hello World"
Dim string2 As String = "Hello World!"
Dim MyInt As Integer = string1.CompareTo(string2)
Console.WriteLine(MyInt)
En este ejemplo se muestra -1 en la consola.
Todas las sobrecargas del método String.CompareTo realizan comparaciones sensibles a criterios culturales y a mayúsculas y minúsculas por defecto. No se proporcionan sobrecargas de este método que te permitan realizar una comparación insensible a la cultura. Recomendamos que use el método String.Compare en su lugar, especificando CultureInfo.CurrentCulture para operaciones sensibles a la cultura o CultureInfo.InvariantCulture para operaciones insensibles a la cultura. Para obtener ejemplos que muestran cómo usar el método String.Compare para realizar comparaciones que son sensibles y no sensibles a la cultura, vea Realizar comparaciones de cadenas Culture-Insensitive.
método Equals
El String.Equals método puede determinar fácilmente si dos cadenas son iguales. Este método distingue mayúsculas de minúsculas y devuelve un valor Booleano true o false. Se puede usar desde una clase existente, como se muestra en el ejemplo siguiente. En el ejemplo siguiente se usa el Equals método para determinar si un objeto de cadena contiene la frase "Hello World".
string string1 = "Hello World";
Console.WriteLine(string1.Equals("Hello World"));
Dim string1 As String = "Hello World"
Console.WriteLine(string1.Equals("Hello World"))
En este ejemplo se muestra True en la consola.
Este método también se puede usar como método estático. En el ejemplo siguiente se comparan dos objetos de cadena mediante un método estático.
string string1 = "Hello World";
string string2 = "Hello World";
Console.WriteLine(String.Equals(string1, string2));
Dim string1 As String = "Hello World"
Dim string2 As String = "Hello World"
Console.WriteLine(String.Equals(string1, string2))
En este ejemplo se muestra True en la consola.
métodos StartsWith y EndsWith
Puede usar el String.StartsWith método para determinar si un objeto de cadena comienza con los mismos caracteres que abarcan otra cadena. Este método que distingue mayúsculas de minúsculas devuelve true si el objeto de cadena actual comienza con la cadena pasada y false si no lo hace. En el ejemplo siguiente se usa este método para determinar si un objeto de cadena comienza por "Hello".
string string1 = "Hello World";
Console.WriteLine(string1.StartsWith("Hello"));
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.StartsWith("Hello"))
En este ejemplo se muestra True en la consola.
El String.EndsWith método compara una cadena pasada con los caracteres que existen al final del objeto de cadena actual. También devuelve un valor booleano. En el ejemplo siguiente se comprueba el final de una cadena mediante el EndsWith método .
string string1 = "Hello World";
Console.WriteLine(string1.EndsWith("Hello"));
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.EndsWith("Hello"))
En este ejemplo se muestra False en la consola.
métodos IndexOf y LastIndexOf
Puede usar el String.IndexOf método para determinar la posición de la primera aparición de un carácter determinado dentro de una cadena. Este método que distingue mayúsculas de minúsculas comienza a contar desde el principio de una cadena y devuelve la posición de un carácter pasado mediante un índice de base cero. Si no se encuentra el carácter, se devuelve un valor de –1.
En el ejemplo siguiente se usa el IndexOf método para buscar la primera aparición del carácter "l" en una cadena.
string string1 = "Hello World";
Console.WriteLine(string1.IndexOf('l'));
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.IndexOf("l"))
En este ejemplo se muestra 2 en la consola.
El String.LastIndexOf método es similar al String.IndexOf método, salvo que devuelve la posición de la última aparición de un carácter determinado dentro de una cadena. Es sensible a las mayúsculas y minúsculas y utiliza un índice de base cero.
En el ejemplo siguiente se usa el LastIndexOf método para buscar la última aparición del carácter "l" en una cadena.
string string1 = "Hello World";
Console.WriteLine(string1.LastIndexOf('l'));
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.LastIndexOf("l"))
En este ejemplo se muestra 9 en la consola.
Ambos métodos son útiles cuando se usan junto con el String.Remove método . Puede usar los IndexOf métodos o LastIndexOf para recuperar la posición de un carácter y, a continuación, proporcionar esa posición al Remove método para quitar un carácter o una palabra que comience con ese carácter.
Consulte también
- Procedimientos recomendados para usar cadenas en .NET
- Realizar operaciones de cadena que no distinguen referencia cultural
- Ordenar tablas de peso : usadas por .NET Framework y .NET Core 1.0-3.1 en Windows
- Tabla de elementos de intercalación Unicode predeterminada : usada por .NET 5 en todas las plataformas y por .NET Core en Linux y macOS