Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2012, 19:28   #1
Uniskull
Пользователь
 
Регистрация: 19.08.2010
Сообщений: 54
Вопрос Найти подстроки в строке

Здравствуйте! Как найти подстроки заключенные между знаками "#" в строке?

Пример:

IN: #string1# test_string #string2# test2 #string3#
OUT: string1 string2 string3
Компьютерный форум - World-PC.NET

Последний раз редактировалось Uniskull; 15.03.2012 в 21:18.
Uniskull вне форума Ответить с цитированием
Старый 16.03.2012, 15:15   #2
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 821
По умолчанию

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

Код:
public void checkWord(string str) {
   int i;
   Array a = str.split('#');
   for(i=0;i<a.Length;i++) {
      if(a[i][0]!=' '&&a[i][a[i].Length-1]!=' ') {
          Console.WriteLine(a[i]);
      }
   }
}
Хотя описание задачи кривое, конечно. Пример чуть ли не противоречит заданной задаче в описании.
^-.-^ My GitHub

Последний раз редактировалось Fenex; 16.03.2012 в 15:22. Причина: косяк
Fenex вне форума Ответить с цитированием
Старый 16.03.2012, 16:34   #3
Руслантус
Наркоман самоучка
Форумчанин
 
Аватар для Руслантус
 
Регистрация: 22.07.2007
Сообщений: 276
По умолчанию

Код:
        public static string[] Substrings(string str, char separator)
        {
            if (string.IsNullOrEmpty(str))
            {
                return new string[0];
            }

            int currentStartIndex = 0;
            List<string> strings = new List<string>();

            while (true)
            {
                // Ищем первую позицию разделителя.
                int leftPos = str.IndexOf(separator, currentStartIndex);

                if (leftPos == -1)
                {
                    break;
                }

                ++leftPos;

                // Ищем вторую позицию разделителя.
                int rightPos = str.IndexOf(separator, leftPos);

                if (rightPos == -1)
                {
                    break;
                }

                // Извлекаем подстроку между разделителями.
                strings.Add(str.Substring(leftPos, rightPos - leftPos));

                currentStartIndex = rightPos + 1;
            }

            return strings.ToArray();
        }
Можно с помощью регулярных выражений:
Код:
            var regex = new Regex(@"#(?<word>\w+)#");
            string input = "#string1# test_string #string2# test2 #string3#";

            foreach (Match match in regex.Matches(input))
            {
                if (match.Groups["word"].Success)
                {
                    Console.WriteLine(match.Groups["word"].Value);
                }
            }
#include <мозг.h>

Последний раз редактировалось Руслантус; 16.03.2012 в 16:40. Причина: [дополнение]
Руслантус вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск подстроки в строке Mister.V Общие вопросы Delphi 14 17.12.2011 13:01
Поиск подстроки в строке videolord Общие вопросы по Java, Java SE, Kotlin 2 10.04.2011 09:11
Поиск подстроки в строке valdemar593 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 03.06.2010 21:42
поиск подстроки в строке!!! StoneSour Общие вопросы C/C++ 2 15.03.2010 21:31
Найти позицию подстроки в строке Ozerich Общие вопросы C/C++ 5 15.12.2008 16:06