Я только что написал этот метод, и мне интересно, если что-то подобное уже существует в рамках? Похоже, что один из тех методов ...
Если нет, есть ли лучший способ сделать это?
/// <summary>
/// Return the whitespace at the start of a line.
/// </summary>
/// <param name="trimToLowerTab">Round the number of spaces down to the nearest multiple of 4.</param>
public string GetLeadingWhitespace(string line, bool trimToLowerTab = true)
{
int whitespace = 0;
foreach (char ch in line)
{
if (ch != ' ') break;
++whitespace;
}
if (trimToLowerTab)
whitespace -= whitespace % 4;
return "".PadLeft(whitespace);
}
Спасибо
Edit:
После прочтения некоторых комментариев становится ясно, что мне также нужно обрабатывать вкладки.
Я не могу привести очень хороший пример, потому что сайт сокращает пространство до одного, но я попробую:
Скажем, входные данные представляют собой строку с 5 пробелами, метод вернет строку с 4 пробелами. Если ввод меньше 4 пробелов, он возвращает ""
.
Это может помочь:
input spaces | output spaces
0 | 0
1 | 0
2 | 0
3 | 0
4 | 4
5 | 4
6 | 4
7 | 4
8 | 8
9 | 8
...