Principales respuestas
comparar dos cadenas con .net

Pregunta
-
saludos, como puedo comparar dos cadenas en .net que pueden estar escritas con mayúsculas y minúsculas con tildes y sin tildes y con diferente espaciado entre palabras
string s1="Ingeniería de Sistemas"; string s2="INGENIERIA DE SISTEMAS ";
en estas dos cadenas dice lo mismo
como puedo compararlo.
Respuestas
-
hola
podrias usar
if(s1.Equals(s2, StringComparison.InvariantCultureIgnoreCase)){ //codigo }
con esto comparas iguanorando las mayusculas o minusculas
ahora bien alli veo que una de las cadenas lleva acento, esto hara que no sean iguales
los espacios podrias quitarlos con con el metodo Replace()
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Marcado como respuesta Augusto C martes, 26 de diciembre de 2017 20:36
Todas las respuestas
-
-
hola
podrias usar
if(s1.Equals(s2, StringComparison.InvariantCultureIgnoreCase)){ //codigo }
con esto comparas iguanorando las mayusculas o minusculas
ahora bien alli veo que una de las cadenas lleva acento, esto hara que no sean iguales
los espacios podrias quitarlos con con el metodo Replace()
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Marcado como respuesta Augusto C martes, 26 de diciembre de 2017 20:36
-
Hola, con esto lo puedes comparar:
int rcomp; string s1="Ingeniería de Sistemas"; string s2="INGENIERIA DE SISTEMAS "; CompareInfo comp = CultureInfo.InvariantCulture.CompareInfo; comp = CompareInfo.GetCompareInfo("es-ES"); CompareOptions copt = CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase | CompareOptions.IgnoreSymbols; rcomp = comp.Compare(s1, s2, copt); MessageBox.Show(rcomp.ToString());
Debes agregar using System.Globalization;
si el resultado de rcomp = 0 significa que las dos cadenas son iguales con los criterios de comparación seleccionados.
Para ver mas sobre estos criterios: CompareOptions Enumeration
Espero te sirva, comentá. Saludos.-
- Propuesto como respuesta Pablo RubioModerator martes, 26 de diciembre de 2017 19:53
-
Sugiero ocupar el método String.Compare() para evaluar la relación de las dos instancias de tipo String, por ejemplo:
string s1 = "Ingeniería de Sistemas"; string s2 = "INGENIERIA DE SISTEMAS "; if (string.Compare(Regex.Replace(s1, @"\s+", ""), Regex.Replace(s2, @"\s+", ""), CultureInfo.CurrentCulture, CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase) == 0) { MessageBox.Show("Ambas cadenas son iguales..."); }
- Propuesto como respuesta Pablo RubioModerator miércoles, 27 de diciembre de 2017 15:42
-
Mucho cuidado con la opción de comparación 'IgnoreSymbol', si bien discrimina los espacios en blanco también lo hace con otros caracteres, como los signos de puntuación, que podría otorgar un significado distinto a la cadena. Por ejemplo, el método resolverá como 0 (igualdad) la evaluación de las cadenas "c#" y "c++".
- Propuesto como respuesta Pablo RubioModerator martes, 26 de diciembre de 2017 19:53