Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Функция для удаления лишних пробелов из строки 
:(
    Опции темы
RUVATA
Дата 17.1.2011, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 24.8.2010

Репутация: нет
Всего: нет



Всем доброго времени суток...
Подскажите существует ли в языке vb.NET встроенная функция для удаления лишних пробелов из строки (не только в конце и начале как Trim, а чтобы и в теле оставляла лишь по одному пробелу разделяющему слова)
Вроде перечитал все описания методов String но ничего не нашел...
PM MAIL   Вверх
jonie
Дата 17.1.2011, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 6
Всего: 118



RUVATA, String.Replace('  ', ' ') ?


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Kaerus
Дата 17.1.2011, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


WPF'er
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 3.9.2010

Репутация: нет
Всего: 1



Скорее так
Код

Regex.Replace(s, " +", " ")

PM MAIL ICQ   Вверх
RUVATA
Дата 20.1.2011, 08:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 24.8.2010

Репутация: нет
Всего: нет



" +"
что это... в моем понимании это символ пробела и символ знака сложения (строка)
или такая конструкция имеет особый смысл?
PM MAIL   Вверх
jonie
Дата 20.1.2011, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 6
Всего: 118



RUVATA, это регулярное выражение вам нарисовали.


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
korob2001
Дата 25.1.2011, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Код

string str = "          This           is     a           test                string";
str = str.Trim();
str = Regex.Replace(str, "\\s+", " ");


PS: Вообще-то в регулярном выражении, пробельный символ обозначается так \s. Если честно, запускать код с выражением " +" ещё не пробовал, как приеду домой попробую, итереса ради.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Kaerus
Дата 25.1.2011, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


WPF'er
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 3.9.2010

Репутация: нет
Всего: 1



korob2001
Как ты наверное знаешь класс \s кроме пробела содержит еще табуляцию и кучу др. знаков.
Здесь говорилось только об удаление пробелов.

Цитата(korob2001)
Если честно, запускать код с выражением " +" ещё не пробовал, как приеду домой попробую, итереса ради.

Не забудь об успехах сообщить

P.S.
Для удобства можно этот метод сделать расширением для String
PM MAIL ICQ   Вверх
korob2001
Дата 25.1.2011, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



В вопросе сказано, что он хочет получить на выходе. Строку, в которой между словами должно быть по одному пробелу. Не думаю, что табуляцию, а уж тем более остальные пробельные символы, нужно оставлять при таком условии.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Machaon
Дата 21.3.2011, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


КаРолЬ АсьКи МуАЛя
*


Профиль
Группа: Участник
Сообщений: 160
Регистрация: 12.8.2008
Где: М.о. Красногорск

Репутация: нет
Всего: 3



Код

 Dim DeleteSpaces As New Regex("\s+")
text = DeleteSpaces.Replace(Текст с лишними пробелами и символами табуляции, " ")

PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0747 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.