2010-10-22 8 views
6

C'è un modo per fare distinzione tra maiuscole e minuscole su una stringa senza usare espressioni regolari in C#?Sostituisci maiuscole/minuscole senza utilizzare espressioni regolari in C#?

qualcosa di simile

string x = "Hello"; 

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

Potresti fornirci un esempio di cosa intendi? – Ani

+0

Una buona soluzione si trova in questa discussione da @ c-dragon-76 http://stackoverflow.com/questions/244531/is-there-an-alternative-to-string-replace-that-is-case-insensitive – Jaider

risposta

6

Si può provare qualcosa di simile

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); 

Date un'occhiata al String.IndexOf Method (String, StringComparison)

+0

Dubito che 'Replace' sarà in grado di sostituire la stringa. È una questione diversa che hai ottenuto indicando ignorando il caso. È un esempio testato? – Nayan

+0

Sì, l'ho provato. Ricorda che sto recuperando l'indice di inizio in base alla stringa di ricerca, ma sostituendo in base alla sottostringa della stringa originale, quindi corrisponderà. –

+0

non funziona come ci si aspetterebbe in altre situazioni ... ad es. se 'str =" Hello-Hello "' ritornerà '" ciao mondo ciao mondo "' ma è 'str =" Ciao-ciao "' ritornerà '" ciao ciao mondo "' ... questa soluzione parziale deve essere riprogettato. – Jaider