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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как дописать "1111" к каждому слову в строке ? 
V
    Опции темы
A5uKa
Дата 11.3.2011, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

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



Как дописать "1111" к каждому слову в строке ? если разные split символы

то есть

ля ля-ля+ля => ля1111 ля1111-ля1111+ля1111 
PM   Вверх
Gluttton
Дата 11.3.2011, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

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



A5uKa, сначала из строки получаем массив строк исходя из перечня сплит-символов.
А затем, например, в цикле каждому элементу массива дописываем суффикс.
В заключении... А что там в заключении... Ну конкатенировать их в цикле будет очень накладно... Возможно есть смысл воспользоваться StingBuilder выделив памяти за раз на всех в цикле из туда вставить.

P.S. Исключительно тереотизирую smile .


--------------------
Слава Україні!
PM MAIL   Вверх
Gluttton
Дата 11.3.2011, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

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



Код

using System;
using System.Text;

namespace Vingrad.A5uKa
{
    class Program
    {
        static void Main (string [] args)
        {
            Console.WriteLine ("Program start.");
            
            char [] spliters = args [1].ToCharArray ();
            string [] words = args [0].Split (spliters);
            int capacity = 0;
            
            for (int i = 0; i < words.Length; i ++) {
                words [i] += args [2];
                capacity += words [i].Length;
            }
            
            StringBuilder stringBuilder = new StringBuilder (capacity);
            
            foreach (string s in words) {
                stringBuilder.Append (s);
            }
            
            string result = stringBuilder.ToString ();
            
            Console.WriteLine (result);
            
            Console.WriteLine ("Program finish.");
        }
    }
}

Цитата

vm@dv:~/Projects/StringSplitter/StringSplitter/bin/Debug> mono StringSplitter.exe ляля-ляля+ляля=ляля -+= 0
Program start.
ляля0ляля0ляля0ляля0
Program finish.


Почти получилось... Только сплит-символы пропали... Это плохо?

P.S. Начинаю практиковать smile .


--------------------
Слава Україні!
PM MAIL   Вверх
A5uKa
Дата 11.3.2011, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

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



делаю так

Код

                let LogicsBuilder(logic : string) =
                    let updatedlogic = ref logic
                    for s in logic.Split(' ','(',')') do
                        match s with
                        | "AND" | "OR" -> ()
                        | s -> updatedlogic := (!updatedlogic).Replace(s,s+" = 1");
                    !updatedlogic

PM   Вверх
Fortnox
Дата 11.3.2011, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Можно регулярки использовать), например:
Код

string strRegex = @"(?<word>\w+)";
RegexOptions myRegexOptions = RegexOptions.None;
Regex myRegex = new Regex(strRegex, myRegexOptions);
string strTargetString = @"ля ля-ля+ля";
string strReplace = "${word}11111";
// результат:
//ля11111 ля11111-ля11111+ля11111

Правда, в этом случае знак подчеркивание считается частью слова.

Можно тогда так изменить регулярку:
Код

(?<word>[a-zA-Zа-яА-Я]+)


Это сообщение отредактировал(а) Fortnox - 11.3.2011, 16:16
PM MAIL   Вверх
Gluttton
Дата 11.3.2011, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

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



Цитата(Fortnox @  11.3.2011,  16:15 Найти цитируемый пост)
Можно регулярки использовать), например:

Пожалуй этот способ будет попроще... Да и результат правильный...

Цитата(A5uKa @  11.3.2011,  16:14 Найти цитируемый пост)
делаю так

Nemerle?


--------------------
Слава Україні!
PM MAIL   Вверх
A5uKa
  Дата 11.3.2011, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

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



Цитата(Gluttton @ 11.3.2011,  16:22)
Цитата(A5uKa @  11.3.2011,  16:14 Найти цитируемый пост)
делаю так

Nemerle?

F# ... 

вот Nemerle , для сравнения

Код

                def LogicsBuilder(logic : string) =
                    def updatedlogic = logic
                    foreach s in logic.Split(' ','(',')')
                        | "AND" | "OR" -> ()
                        | s -> updatedlogic = updatedlogic.Replace(s,s+" = 1")
                    updatedlogic

PM   Вверх
VirusUZ
  Дата 17.3.2011, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 9.4.2010
Где: Узбекистан, Навои й обл.

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



switch технологий
--------------------
Virus
PM MAIL   Вверх
A5uKa
Дата 17.3.2011, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

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



Цитата(VirusUZ @ 17.3.2011,  14:42)
switch технологий

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

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


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

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


 




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


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

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