Как я могу удалить пробел из строки в .NET
?Как удалить пробел из строки?
eg. «HELLO WORLD!» Становится «HELLOWORLD!»
Как я могу удалить пробел из строки в .NET
?Как удалить пробел из строки?
eg. «HELLO WORLD!» Становится «HELLOWORLD!»
Использование Regex, (то есть, как я хотел бы сделать это!)
string sample = "HELLO WORLD ! ";
resultString = Regex.Replace(sample, @"\s+", "");
Или LINQ путь
string sample = "Hello world! ";
var result = new string(sample.Where(c => !Char.IsWhiteSpace(c)).ToArray());
Проверить это SO Вопрос: Fastest way to remove white spaces in string
Кажется, это лучший способ сделать это.
public static string RemoveWhiteSpaces(this string str)
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.Length; i++)
{
char c = str[i];
if (!Char.IsWhiteSpace(c))
sb.Append(c);
}
return sb.ToString();
}
Возможно, более эффективно использовать '\ s +', нет? – Blorgbeard
@Blorgbeard - как вы говорите, сэр! –
Документы 'Regex' явно не упоминают об этом, но я предполагаю, что' \ s' использует 'Char.IsWhiteSpace()' - поэтому он получает все пробелы Unicode. –
Если вы просто беспокоюсь только о пространствах, используйте Replace метод класса Струнный:
var str = " HELLO WORLD ! ";
var strWithoutSpaces = str.Replace(" ", "");
В противном случае, используйте метод Regex.Replace
как предложено в ответ AppDeveloper в.
Хорошо, но только получает пробелы - не вкладки и т. Д. – Blorgbeard
Есть БОЛЬШЕ больше «пробелов», чем просто «». –
Хорошо, я повторил свой ответ. – cdmckay
Используйте Char.IsWhiteSpace перебрать каждый символ в исходной строке (модификация ответа AppDeveloper в)
public static string RemoveWhiteSpaces(this string str)
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.Length; i++)
{
if(!Char.IsWhiteSpace(str, i)){
sb.Append(str[i]);
}
}
return sb.ToString();
}
----- Оригинал Ответ ------
String.Trim ()
Символы пробега определяются стандартом Юникода. Метод Trim() удаляет любые ведущие и завершающие символы, которые возвращают значение true, когда они передаются в метод Char.IsWhiteSpace .
'Trim' удаляет только пробелы от начала и до конца строки. – cdmckay
Ах, простите об этом, не видел, что вам нужна целая цепочка – smith324
Так как Trim использует 'Char.IsWhiteSpace' внутри, я бы использовал тот же подход здесь. Просто создайте 'StringBuilder' и перейдем к исходной строке, добавьте символы в конструктор if! IsWhiteSpace – smith324
Используйте этот
var original=" HELLO WORLD \t! ";
var result=original.Select(x => x.ToString().Trim()).Aggregate(String.Concat);
или это
var result=new String(original.Where(x => !Char.IsWhiteSpace(x)).ToArray());
Это действительно удаляет пробельные не только пространства.
Интересный подход, но я думаю, вы должны использовать' Char.IsWhiteSpace' вместо преобразования каждого символа в строку. –
@pswg: Это будет 'var result = new String (original.Where (x =>! Char.IsWhiteSpace (x)). ToArray());' –
+1 Я отредактировал ваш ответ, включив его в качестве альтернативного решения , –
Ярлык в качестве ссылки: «HELLO WORLD!». Заменить («», «»); – Sunny
@Sundeep: нет, это только, который НЕ совпадает с «пробелом» –
@Jack: ответ, помеченный как правильный, не использует 'Char.IsWhiteSpace()' –