Cách đơn giản nhất để đảo ngược trường hợp của tất cả các ký tự chữ cái trong chuỗi C# là gì? Ví dụ: "aBc1 $;" nên trở thành "AbC1 $;" Tôi có thể dễ dàng viết một phương pháp làm điều này, nhưng tôi hy vọng có một cuộc gọi thư viện mà tôi không biết về điều đó sẽ làm cho điều này dễ dàng hơn. Tôi cũng muốn tránh có một danh sách của tất cả các ký tự chữ cái được biết đến và so sánh từng nhân vật với những gì có trong danh sách. Có lẽ điều này có thể được thực hiện với các biểu thức thông thường, nhưng tôi không biết chúng rất rõ. Cảm ơn.Trường hợp ngược của tất cả các ký tự chữ cái trong C# string
Cảm ơn sự giúp đỡ. Tôi tạo ra một phương pháp mở rộng chuỗi cho điều này mà chủ yếu là lấy cảm hứng từ giải pháp Anthony Pegram, nhưng không có LINQ. Tôi nghĩ rằng điều này tạo ra sự cân bằng tốt giữa khả năng đọc và hiệu suất. Đây là những gì tôi nghĩ ra.
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);
}
Lưu ý: một số ghi chú quốc tế hóa trong câu trả lời của tôi. – ErikE