Преобразование между корпусом Паскаля, верблюжьим футляром и правильным корпусом в C#
В этом примере используются методы расширения строк для преобразования строк между корпусом Pascal, верблюжьим футляром и правильным случаем.
В случае Pascal каждое слово заглавное, как в ThisStringIsPascalCased. В случае с верблюдом каждое слово, кроме первого, капитализируется как в thisStringIsCamelCased. В правильном случае каждое слово капитализируется и разделяется пробелами, как в этой строке. Собственная оболочка.
В следующем коде показан способ расширения строки ToPascalCase.
// Преобразуем строку в паскаль. public static string ToPascalCase(this string the_string) { // Если есть 0 или 1 символ, просто верните строку. if (the_string == null) return the_string; if (the_string.Length < 2) return the_string.ToUpper(); // Разделим строку на слова. string[] words = the_string.Split( new char[] { }, StringSplitOptions.RemoveEmptyEntries); // Объединим слова. string result = ""; foreach (string word in words) { result += word.Substring(0, 1).ToUpper() + word.Substring(1); } return result; }
Этот метод разбивает строку на слова, разделенные пробелами. Затем он перебирает слова, используя их и объединяя их.
В следующем коде показан способ расширения строки ToCamelCase.
// Преобразуем строку в случай верблюда. public static string ToCamelCase(this string the_string) { // Если есть 0 или 1 символ, просто верните строку. if (the_string == null || the_string.Length < 2) return the_string; // Разделим строку на слова. string[] words = the_string.Split( new char[] { }, StringSplitOptions.RemoveEmptyEntries); // Объединим слова. string result = words[0].ToLower(); for (int i = 1; i < words.Length; i++) { result += words[i].Substring(0, 1).ToUpper() + words[i].Substring(1); } return result; }
Метод расширения ToCamelCase аналогичен методу ToPascalCase, за исключением того, что он не использует значение первого слова.
В следующем коде показан способ расширения ToProperCase.
// Заглавные буквы первого символа и добавьте пробел перед // каждая заглавная буква (кроме первого символа). public static string ToProperCase(this string the_string) { // Если есть 0 или 1 символ, просто верните строку. if (the_string == null) return the_string; if (the_string.Length < 2) return the_string.ToUpper(); // Начнем с первого символа. string result = the_string.Substring(0, 1).ToUpper(); // Добавьте оставшиеся символы. for (int i = 1; i < the_string.Length; i++) { if (char.IsUpper(the_string[i])) result += " "; result += the_string[i]; } return result; }
ToProperCase пересекает символы в строке и вставляет пробел перед каждой заглавной буквой. Обратите внимание, как он использует char.IsUpper, чтобы определить, является ли символ верхним.