2011-05-15 18 views
8

Tengo una cadena "01-02" y me gustaría compararla con otra cadena "02-03-1234". ¿Hay alguna manera simple de comparar si los primeros cinco caracteres de una cuerda son iguales a los primeros cinco de otra cuerda?¿Cómo puedo comparar parte de una cadena?

Marife

Respuesta

3

Sólo tiene que utilizar el método Substring para obtener parte de las cuerdas, y verifique la longitud de las cuerdas primera a menos que esté completamente seguro de que siempre están al menos cinco caracteres:

if (str1.Lenght >= 5 && str2.Length >= 5 && str1.Substring(0, 5) == str2.Substring(0, 5)) ... 
12
bool startsWithFoo = "foobar".StartsWith("foo"); 
+1

Tenga en cuenta que 'StartsWith' comparará todos de una cadena en el mismo número de caracteres en la otra cadena, no los primeros cinco caracteres de una cadena a los primeros cinco caracteres la otra cuerda – Guffa

1

Prueba esto:

if (str1.Lenght >= 5 && 
    str2.StartsWith(str1.Substring(0, 5))) 
{ 
    // Do what you please 
} 
11

Si sus cadenas son al menos 5 caracteres s larga, entonces string.Compare debería funcionar:

var match = string.Compare(str1, 0, str2, 0, 5) == 0; 
+1

Tenga en cuenta que 'string.Compare' utiliza la cultura actual para comparar cadenas. Para una comparación de cadenas exacta (y más rápida) use [string.CompareOrdinal] (https://msdn.microsoft.com/en-us/library/es986b3k (v = vs.110) .aspx) –

Cuestiones relacionadas