С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.51/41: Рейтинг темы: голосов - 41, средняя оценка - 4.51
1 / 1 / 0
Регистрация: 12.06.2016
Сообщений: 43

Удаление пробелов в строке

08.11.2016, 07:54. Показов 8132. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста, как исправить: Индекс находился вне границ массива
вот код

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void Main()
{
     string s = "lkfj  fgef    efgre erge   g gergerg rf";
     char[] ch = s.ToCharArray();
     int x = 0;
     
     
     for(int i =0; i<ch.Length; i++)
     
     {
     if (s[i] == ' ' && s[i+1] == ' ')
        x++;
        if(i+1 > ch.Length-1) break;
        ch [i+1] = ch [i+2];
        ch[ch.Length-x] = '.';
        ch.Dump();
     }
     
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.11.2016, 07:54
Ответы с готовыми решениями:

Удаление всех пробелов в строке
Напишите программу на языке C#, удаляющую из строки все пробелы даже если в строке стоят два пробела подряд они должны быть удалены . ...

Удаление лишних пробелов в строке
Привет всем! Есть задача, задание такое: &quot;Cоставьте программу, которая будет вводить строку в переменную String. Удалите из нее все лишние...

Удаление пробелов
Добрый день! Есть вот такая программка. Уже готова, но почему то не работает ( вот архив Там есть три варианта. 1. Замена...

7
 Аватар для MIJIORD
7 / 7 / 8
Регистрация: 20.12.2015
Сообщений: 20
08.11.2016, 09:04
Если вам нужно только пробелы удалить, не проще сделать так
C#
1
2
3
string s = "lkfj  fgef    efgre erge   g gergerg rf";
s = s.Replace(" ", "");
Console.WriteLine(s);
0
1 / 1 / 0
Регистрация: 12.06.2016
Сообщений: 43
08.11.2016, 09:57  [ТС]
нужно лишние пробелы после первого удалить
решение нашел
есть другие варианты?

вот решение
C#
1
2
3
4
while(a.Contains("  "))
              {
                  a = a.Replace("  ", " ");
               }
0
 Аватар для Simbiont
27 / 27 / 16
Регистрация: 22.04.2016
Сообщений: 86
08.11.2016, 10:20
Цитата Сообщение от Alexii Посмотреть сообщение
while(a.Contains(" "))
{
a = a.Replace(" ", " ");
}
конкретно этот код ничего не меняет.

C#
1
2
3
4
5
6
7
8
9
10
11
string s = "lkajs    alskd  aksjdj   asdl     aslkdj";
         
            string[] ss = s.Split(' '); //забираем сплитом в новый массив все слова, разделенные пробелом.
            s = ""; //обнуляем строку, так как она у нас в массиве
            foreach (var str in ss)  //для каждой подстроки в массиве
            {
                if (str != "") //если она не пустая (то есть не было 2 пробела подряд)
                    s += str + " "; //перезаписываем в строку эти слова с 1 пробелом, а пустые строки (двойные пробелы) пропускаем
            }                            
            Console.WriteLine(s); //выводим на консольку.
            Console.ReadKey();
2
 Аватар для MIJIORD
7 / 7 / 8
Регистрация: 20.12.2015
Сообщений: 20
08.11.2016, 10:25
Вот этот код удалит все лишние пробелы кроме первого
C#
1
2
3
4
5
6
      while (s.Contains("  "))
            {
                String replace = s.Replace("  ", " ");
                s = replace;
 
            }
1
Life Builder
 Аватар для sk007
531 / 496 / 374
Регистрация: 12.01.2011
Сообщений: 1,755
08.11.2016, 11:05
Цитата Сообщение от Alexii Посмотреть сообщение
есть другие варианты?
Еще вариант с регуляркой
C#
1
a = Regex.Replace(a, @"\s+", " ");
или
C#
1
a = string.Join(" ", a.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries));
0
 Аватар для diadiavova
7258 / 2605 / 744
Регистрация: 11.04.2015
Сообщений: 4,148
Записей в блоге: 43
08.11.2016, 12:22
Наиболее простые методы - это сплит-джойн и регуляркой(представлены выше), но если надо конкретно обойти циклом символы и собрать все, что нужно, то можно сделать так.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
        static string NormalizeSpaces(string str)
        {
            var builder = new StringBuilder();
            for (int i = 0; i < str.Length; i++)
            {
                if (str[i] != ' ')
                {
                    builder.Append(str[i]);
                }
                else
                {
                    if (i == str.Length - 1 || str[i + 1] != ' ')
                    {
                        builder.Append(str[i]);
                    }
                }
            }
            return builder.ToString();
        }
Добавлено через 2 минуты
Цитата Сообщение от sk007 Посмотреть сообщение
a = Regex.Replace(a, @"\s+", " ");
\s+ удалит не только пробелы, но и знаки табуляции, возврата каретки и новой строки. Скорее так тогда \ + или так \ {2,}
0
Life Builder
 Аватар для sk007
531 / 496 / 374
Регистрация: 12.01.2011
Сообщений: 1,755
08.11.2016, 22:38
Цитата Сообщение от diadiavova Посмотреть сообщение
\s+ удалит не только пробелы, но и знаки табуляции, возврата каретки и новой строки. Скорее так тогда \ + или так \ {2,}
согласен
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.11.2016, 22:38
Помогаю со студенческими работами здесь

Удаление пробелов из строки
Здравствуйте помогите пожалуйста, у создал поисковик всё хорошо работает но хочу избавится от проблем Space пример в базе есть hello...

Удаление пробелов в строковом массиве
Проблема: вводится строка содержащая числа и между числами случайное кол-во пробелов, подскажите как можно редактировать/заменить/добавить...

Удаление пробелов и знаков препинания
нужно удалить из текста который будет введен в программу лишние пробелы и знаки препинания. помогите пожалуйста

Удаление повторяющихся пробелов из строки
Вот вопрос : у меня есть строка какая-та и в этой строке есть много пробелов которые каждый что-то отделяет. Но вот есть у меня пробел и...

Удаление пробелов, если их больше одного
Задали написать программу, удаляющую пробелы из строки, если их больше 1(т.е. их может быть 2, 4, 20, 40 и т.д.) Никак не могу ничего...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru