fork download
  1. using static System.Console;
  2. using System.Text;
  3.  
  4. public static class Program {
  5. public static void Main() {
  6. WriteLine("CamelCase".SplitCamelCase());
  7. WriteLine("Camel-Case".SplitCamelCase());
  8. WriteLine("Camel---Case".SplitCamelCase());
  9. WriteLine("Camel.Case".SplitCamelCase());
  10. WriteLine("Ca".SplitCamelCase());
  11. WriteLine("aC".SplitCamelCase());
  12. WriteLine("CC".SplitCamelCase());
  13. WriteLine("C".SplitCamelCase());
  14. WriteLine("CamelCaseC".SplitCamelCase());
  15. WriteLine("".SplitCamelCase());
  16. WriteLine("pascalCase".SplitCamelCase());
  17. WriteLine("CamelCase".SplitCamelCase('-', ""));
  18. WriteLine("Camel-Case".SplitCamelCase('-', ""));
  19. WriteLine("Camel---Case".SplitCamelCase('-', ""));
  20. WriteLine("Camel.Case".SplitCamelCase('-', ""));
  21. WriteLine("Ca".SplitCamelCase('-', ""));
  22. WriteLine("aC".SplitCamelCase('-', ""));
  23. WriteLine("CC".SplitCamelCase('-', ""));
  24. WriteLine("C".SplitCamelCase('-', ""));
  25. WriteLine("CamelCaseC".SplitCamelCase('-', ""));
  26. WriteLine("".SplitCamelCase('-', ""));
  27. WriteLine("pascalCase".SplitCamelCase('-', ""));
  28. }
  29. public static string SplitCamelCase(this string text, char separator = '-', string separators = "-=_+!@#$%&*()'^~[]{}/?;:.,<>|\\\"") {
  30. if (string.IsNullOrEmpty(text) || text.Length < 2) return text;
  31. var sb = new StringBuilder(text.Length + text.Length / 3);
  32. for (var i = 0; i < text.Length; i++) {
  33. if (char.IsUpper(text[i]) && i > 0 && !separators.Contains(text[i - 1].ToString())) sb.Append(separator);
  34. sb.Append(text[i]);
  35.  
  36. }
  37. return sb.ToString();
  38. }
  39. }
  40.  
  41. //https://pt.stackoverflow.com/q/278619/101
Success #stdin #stdout 0.02s 15948KB
stdin
Standard input is empty
stdout
Camel-Case
Camel-Case
Camel---Case
Camel.Case
Ca
a-C
C-C
C
Camel-Case-C

pascal-Case
Camel-Case
Camel--Case
Camel----Case
Camel.-Case
Ca
a-C
C-C
C
Camel-Case-C

pascal-Case