Jaki jest najprostszy sposób odwrócenia przypadku wszystkich znaków alfabetu w ciągu C#? Na przykład "aBc1 $;" powinno stać się "AbC1 $;" Mogłabym łatwo napisać metodę, która to robi, ale mam nadzieję, że wywołanie biblioteki, o którym nie wiem, ułatwiłoby to. Chciałbym również uniknąć listy wszystkich znanych znaków alfabetu i porównywania każdej postaci z tym, co jest na liście. Może to zrobić za pomocą wyrażeń regularnych, ale nie znam ich zbyt dobrze. Dzięki.Odwrotność wszystkich znaków alfabetu w ciągu C#
Dzięki za pomoc. Stworzyłem metodę rozszerzenia ciągów, która jest w większości inspirowana rozwiązaniem Anthony Pegram, ale bez LINQ. Wydaje mi się, że zapewnia to odpowiednią równowagę pomiędzy czytelnością i wydajnością. Oto, co wymyśliłem.
public static string SwapCase(this string source) {
char[] caseSwappedChars = new char[source.Length];
for(int i = 0; i < caseSwappedChars.Length; i++) {
char c = source[i];
if(char.IsLetter(c)) {
caseSwappedChars[i] =
char.IsUpper(c) ? char.ToLower(c) : char.ToUpper(c);
} else {
caseSwappedChars[i] = c;
}
}
return new string(caseSwappedChars);
}
Uwaga: niektóre uwagi dotyczące internacjonalizacji znajdują się w mojej odpowiedzi. – ErikE