Ответ 1
Используйте Regex.split
string[] split = Regex.Split(str, @"(?<!^)(?=[A-Z])");
Я использовал метод Split()
для разделения строк. Но эта работа, если вы установите некоторый символ для условия в string.Split()
. Есть ли способ разделить строку, когда отображается Uppercase
?
Можно ли получить несколько слов из некоторой не разделенной строки, например:
DeleteSensorFromTemplate
И строка результата должна выглядеть следующим образом:
Delete Sensor From Template
Используйте Regex.split
string[] split = Regex.Split(str, @"(?<!^)(?=[A-Z])");
Если вам не нравится RegEx, и вы просто хотите вставить недостающие пробелы, это также сделает работу:
public static string InsertSpaceBeforeUpperCase(this string str)
{
var sb = new StringBuilder();
char previousChar = char.MinValue; // Unicode '\0'
foreach (char c in str)
{
if (char.IsUpper(c))
{
// If not the first character and previous character is not a space, insert a space before uppercase
if (sb.Length != 0 && previousChar != ' ')
{
sb.Append(' ');
}
}
sb.Append(c);
previousChar = c;
}
return sb.ToString();
}
Другой способ с регулярным выражением:
public static string SplitCamelCase(string input)
{
return System.Text.RegularExpressions.Regex.Replace(input, "([A-Z])", " $1", System.Text.RegularExpressions.RegexOptions.Compiled).Trim();
}