Возможный дубликат:
Как заменить несколько пробелов на одно место на С#?
Каков самый элегантный способ обрезать пробелы в строках типа " a<many spaces>b c "
в "a b c"
. Таким образом, повторяющиеся пробелы сжимаются в одно пространство.
Возможный дубликат:
Как заменить несколько пробелов на одно место на С#?
Каков самый элегантный способ обрезать пробелы в строках типа " a<many spaces>b c "
в "a b c"
. Таким образом, повторяющиеся пробелы сжимаются в одно пространство.
Вы можете использовать Regex
для этого:
Regex.Replace(my_string, @"\s+", " ").Trim();
Решение без регулярного выражения, просто чтобы оно было на столе:
char[] delimiters = new char[] { ' '}; // or null for 'all whitespace'
string[] parts = txt.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
string result = String.Join(" ", parts);
Regex.Replace(my_string, @"^\s+|\s+$|(\s)\s+", "$1");
Используйте метод Trim
для удаления пробелов из начала и конца строки и регулярное выражение для сокращения нескольких пробелов:
s = Regex.Replace(s.Trim(), @"\s{2,}", " ");
Вы можете сделать
Regex.Replace(str, "\\s+", " ").Trim()
Regex.Replace(str, "[\s]+"," ")
Затем вызовите Trim, чтобы избавиться от верхнего и конечного пробелов.
использовать регулярное выражение
String test = " a b c ";
test = Regex.Replace(test,@"\s{2,}"," ");
test = test.Trim();
этот код заменяет любые 2 или более пробела одним пробелом, используя Regex
, затем удаляйте в начале и в конце.
Используйте регулярное выражение:
"( ){2,}" //Matches any sequence of spaces, with at least 2 of them
и используйте это, чтобы заменить все совпадения на "".
Я не делал этого на С#, и мне нужно больше времени, чтобы выяснить, что говорит документация, поэтому вам придется найти это самостоятельно.. извините.
Regex rgx = new Regex("\\s+");
string str;
str=Console.ReadLine();
str=rgx.Replace(str," ");
str = str.Trim();
Console.WriteLine(str);