2010-10-22 15 views
6

¿Hay alguna manera de hacer un reemplazo insensible a mayúsculas/minúsculas en una cadena sin usar expresiones regulares en C#?Reemplazo insensible a mayúsculas y minúsculas sin usar expresión regular en C#?

algo como esto

string x = "Hello"; 

x = x.Replace("hello", "hello world"); 
+1

¿Podría darnos un ejemplo de lo que quiere decir? – Ani

+0

Una buena solución se encuentra en este hilo de @c-dragon-76 http://stackoverflow.com/questions/244531/is-there-an-alternative-to-string-replace-the-is-case-insensitive – Jaider

Respuesta

6

Puede intentar algo así como

string str = "Hello"; 
string replace = "hello"; 
string replaceWith = "hello world"; 
int i = str.IndexOf(replace, StringComparison.OrdinalIgnoreCase); 
int len = replace.Length; 
str = str.Replace(str.Substring(i, len), replaceWith); 

Para consultar todas String.IndexOf Method (String, StringComparison)

+0

Dudo que 'Replace' pueda reemplazar la cadena. Es una cuestión diferente que tienes índice al ignorar el caso. ¿Es un ejemplo probado? – Nayan

+0

Sí, he probado esto. Solo recuerde que estoy recuperando el índice de inicio basado en la cadena de búsqueda, pero reemplazando basado en la cadena secundaria de la cadena original, para que coincida. –

+0

no funciona como esperábamos en otras situaciones ... p. si 'str =" Hello-Hello "' devolverá '" hello world-hello world "' pero es 'str =" Hello-hello "' devolverá '" hello world-hello "' ... esta solución parcial necesita ser rediseñado. – Jaider

Cuestiones relacionadas