Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
25 / 25 / 10
Регистрация: 27.11.2011
Сообщений: 272

Оптимальный анализ строки

02.09.2015, 00:57. Показов 924. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрых времени суток. Имеесть файл вида:
XML
1
2
3
4
5
6
Hi slot 1
Hi slot 2
Med slot 1
Med slot 2
Low slot 1
Low slot 2
Нужно проанализировать строку и определить какой тип слота (hi,med,low) и номер (1,2...6) содержит строка и в зависимости от типа и номера выполнять некии функции.
Можно ли сделать это не прикрычивая кучу if и case?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.09.2015, 00:57
Ответы с готовыми решениями:

Поэлементный просмотр анализ строки
Доброго времени суток, форумчане! Прошу помочь со следующей проблемой. Есть строка, в которое вводится выражение с консоли. Как в С#...

Анализ введеной на английском строки.
Люди помогите не знаю что делать,не опытный студент дали задание Анализ введеной на английском строки. Необходимая функциональность : ...

Провести лексический анализ строки и сказать является ли она верным арифметическим выражением
Прошу сильно не пинать, т.к. только начал изучать дискретку. Есть некоторый алфавит состоящий из чисел типа double, и следующих...

3
Master of Orion
Эксперт .NET
 Аватар для Psilon
6101 / 4957 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
02.09.2015, 01:34
llFreeManll, ну если важна скорость, можно так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
enum SlotType
{
    High, Medium, Low
}
 
private static KeyValuePair<SlotType, int> GetStringInfo(string str)
{
    char first = char.ToUpper(str[0]);
    SlotType type = first == 'H' ? SlotType.High : first == 'L' ? SlotType.Low : SlotType.Medium;
    int j = str.Length - 1;
    while (char.IsDigit(str[j]))
    {
        j--;
    }
    int slot = int.Parse(str.Substring(j + 1));
    return new KeyValuePair<SlotType, int>(type, slot);
}
Пример:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
static void Main(string[] args)
{
    string[] s = @"Hi slot 1
Hi slot 2
Med slot 1
Med slot 2
Low slot 1
Low slot 2".Split(new[] {Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries);
 
    foreach (var str in s)
    {
        var info = GetStringInfo(str);
        Console.WriteLine("{0} - {1} : {2}", str, info.Key, info.Value);
    }
}
Добавлено через 2 минуты
Блин, не так задачу понял. Ну, зависит от разного. Если полностью разные действия, то да, можно прямо в switch case. Словарь делает ровно то же, поэтому он тут не поможет особо.

Но если действия похожие, то есть смысл заюзать ООП и наследование. Функции писать все равно придется, но выбор ляжет на рантайм. Чуть покрасивше будет, но выбор никуда не денется - где-то его совершать надо.
0
25 / 25 / 10
Регистрация: 27.11.2011
Сообщений: 272
02.09.2015, 10:18  [ТС]
Psilon, Функция будет одна, создание Picture Box (выяснил это сегодня утром у заказчика ), но для каждого типа слота и его номера с разными параметрами и свойствами. Тоесть: Hi slot 1 - одни параметры, Hi slot 2 - другие, и так далее.
P.S. А про словарь я совсем забыл, думаю теперь будет целесообразней сделать через него.
0
TheGreatCornholio
 Аватар для Woldemar89
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
02.09.2015, 11:40
Реализация класса таблицы с индексатором
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.09.2015, 11:40
Помогаю со студенческими работами здесь

Оптимальный способ строки в хэш
есть строка 1|0:1|1:2|2:3|3:4,2|0:10|1:20|2:30,3|0:0|1:0|2:0,4|0:1500 как оптимальнец переделать её в хэш вида 1=&gt;{0=&gt;1, 1=&gt;2,...

Анализ строки
Помогите пожалуйста составить цикл. Вкратце ситуация следующая: имеется рабочая книга, где на третьем листе в ячейках A1, A4, A7 и т.д....

Анализ текстовой строки
Здравствуйте форумчане. Есть строка хранится она в массиве char str. В неё записываем строку вида &quot;add x&quot; где x это рандомное...

анализ строки адреса
Здравствуйте, нужно решить программно следующую задачу: 1) есть база плательщиков с адресами; единообразного заполения адреса нет, т.е....

Частотный анализ строки
Помогите пожалуйста дописать программу выполняющую частотный анализ строки, введенной пользователем (т. е. вычисляющей, сколько раз в...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
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-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru