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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа со строками, помогите решить 
:(
    Опции темы
k1La
Дата 3.11.2009, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Помогите решить задачи на строки на C#:

Дан текст, слова разделены пробелами. 
1. Преобразовать все слова по правилу: удалить из слова все последующие вхождения первого символа
2. Преобразовать все слова по правилу: оставить в слове только последние вхождения каждого символа
PM MAIL   Вверх
N1ko
Дата 3.11.2009, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



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

Это сообщение отредактировал(а) N1ko - 3.11.2009, 18:37

Присоединённый файл ( Кол-во скачиваний: 11 )
Присоединённый файл  StringProcessing.zip 40,70 Kb
PM MAIL ICQ   Вверх
Grok
Дата 3.11.2009, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



что-то вроде этого 
Код

class Program
    {
        static void Main(string[] args)
        {
            string str = "But a Taliban spokesman said claimed success in helping disrupt the election, which he called";
            Execute(str);
        }

        public static void Execute(string str)
        {
            StringBuilder firstResultStr = new StringBuilder();
            StringBuilder secondResultStr = new StringBuilder();
            Regex regMain = new Regex(@"\b\w+\b", RegexOptions.IgnoreCase);
            MatchCollection wordList = regMain.Matches(str);
            foreach (Match word in wordList)
            {
                firstResultStr.Append(FirstTask(word.Value) + " ");
                secondResultStr.Append(SecondTask(word.Value) + " ");
            }
            Console.WriteLine(str);
            Console.WriteLine(firstResultStr.ToString());
            Console.WriteLine(secondResultStr.ToString());
            Console.Read();
        }

        public static string FirstTask(string str)
        {
            Regex reg = new Regex(@"\w", RegexOptions.IgnoreCase);
            Match firstSymbol = reg.Match(str);
            return firstSymbol.Value + str.Replace(firstSymbol.Value, "");
        }

        public static string SecondTask(string str)
        {
            Regex reg = new Regex(@"\w", RegexOptions.IgnoreCase);
            MatchCollection Symbols = reg.Matches(str);
            return Cut(str, Symbols, 0);
        }

        private static string Cut(string input, MatchCollection symbols, int index)
        {
            if (index >= symbols.Count)
            {
                return input;
            }
            Regex reg = new Regex(symbols[index].Value);
            MatchCollection sym = reg.Matches(input);
            return Cut(reg.Replace(input, "", sym.Count - 1), symbols, ++index);
        }
    }



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

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


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

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


 




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


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

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