Преобразование между корпусом Паскаля, верблюжьим футляром и правильным корпусом в 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, чтобы определить, является ли символ верхним.
