Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
 Аватар для KotovichMX
-27 / 7 / 1
Регистрация: 19.07.2011
Сообщений: 627

Как проделать замену символов алфавита более оптимально, используя один массив?

30.01.2017, 06:15. Показов 4043. Ответов 76
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
подскажите пожалуйста как проделать замену символов алфавита более оптимально переводя в один массив. у меня что-то не получается. вот код :


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication177
{
    internal sealed class Program
    {
        static void Main()
        {
 
 
            string s = "а";
            string s1 = "б";
            string s2 = "в";
            string s3 = "г";
            string s4 = "д";
            string s5 = "э";
            string s6 = "е";
            string s7 = "ж";
 
            Console.WriteLine(s.Replace("а", "1"));
            Console.WriteLine(s1.Replace("б", "2"));
            Console.WriteLine(s2.Replace("в", "3"));
            Console.WriteLine(s3.Replace("г", "4"));
            Console.WriteLine(s4.Replace("д", "5"));
            Console.WriteLine(s5.Replace("э", "6"));
            Console.WriteLine(s6.Replace("е", "7"));
            Console.WriteLine(s7.Replace("ж", "8"));
            Console.ReadLine();
            Console.ReadKey();
        }
    }
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.01.2017, 06:15
Ответы с готовыми решениями:

не пойму как в делфи это проделать,тем более с рекурсией
Имеется центральная планета П с рядом спутников, у каждого из которых свои спутники, у тех - свои и т.д. Очевидно, что каждый спутник может...

Как написать более оптимально программу
Здравствуйте. Программа заполняет ячейку на основании введенных данных в TextBox`ы, расположенных в в MultiPage. Код рабочий, но невероятно...

Как разбить строку символов используя один разделитель.
Как разбить строку символов используя один разделитель. Например: Dim strTest As string Dim strTest_1 As string Dim strTest_2 As...

76
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
31.01.2017, 12:46
Студворк — интернет-сервис помощи студентам
KotovichMX,
У меня и сейчас работает. Чем я в общем то не горжусь. Ибо как метод шифрования это - лажа.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
using System;
using System.Text;
 
class MooseCrypto
{
    static void Main()
    {
        string s1 = "мама мыла раму 3 раза";
        Console.WriteLine(s1);
        s1 = ChangeString(s1);
        Console.WriteLine(s1);
        s1 = ReturnString(s1);
        Console.WriteLine(s1);
    }
 
    static string ChangeString(string sourceString)
    {
        string keyString = "0123456789 абвгдеёжзийклмнопрстуфхцчшщьыъэюя";
        StringBuilder sb = new StringBuilder();
        int index;
        foreach (char ch in sourceString)
        {
            index = keyString.IndexOf(Char.ToLower(ch));
            sb.Append(index > -1 ? string.Format("{0:d2}", index + 1) : ch.ToString());
        }
        return sb.ToString();
    }
 
    static string ReturnString(string encryptedString)
    {
        string keyString = "0123456789 абвгдеёжзийклмнопрстуфхцчшщьыъэюя";
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < encryptedString.Length; i += 2)
        {
            sb.Append(keyString[int.Parse(string.Format("{0}{1}", encryptedString[i], encryptedString[i + 1])) - 1]);
        }
        return sb.ToString();
    }
 
}
1
 Аватар для KotovichMX
-27 / 7 / 1
Регистрация: 19.07.2011
Сообщений: 627
31.01.2017, 13:17  [ТС]
чего там сравнивать я его скопировал. и добавил как вторую часть. и мне не ясно почему метод не желает работать.
0
Эксперт .NET
 Аватар для Usaga
14724 / 9493 / 1362
Регистрация: 21.01.2016
Сообщений: 35,790
31.01.2017, 13:25
Цитата Сообщение от KotovichMX Посмотреть сообщение
чего там сравнивать я его скопировал. и добавил как вторую часть. и мне не ясно почему метод не желает работать.


Добавлено через 5 минут
Цитата Сообщение от KotovichMX Посмотреть сообщение
чего там сравнивать
Действительно. Ведь твой текущий подход "Недумать\Незнать" настолько эффективен, что твои программы либо не компилируются, либо компилируются, но тупо не работают. Молодец! Продолжай в том же духе
0
 Аватар для KotovichMX
-27 / 7 / 1
Регистрация: 19.07.2011
Сообщений: 627
31.01.2017, 13:38  [ТС]
текущий подход это выяснить что не работает. есть кто нить кто может объяснить нормальным языком? (без припадков садо-мазо please).
0
Эксперт .NET
 Аватар для Usaga
14724 / 9493 / 1362
Регистрация: 21.01.2016
Сообщений: 35,790
31.01.2017, 13:47
KotovichMX, тебе просто нужно вызвать метод расшифровки и передать ему зашифрованную строку. В примере, из которого ты взял, код это есть. Одна строчка. Одна, Карл.

Добавлено через 4 минуты
KotovichMX, твоих же знаний достаточно, чтобы хотя бы уметь метод класса вызвать без посторонней помощи?
0
 Аватар для KotovichMX
-27 / 7 / 1
Регистрация: 19.07.2011
Сообщений: 627
31.01.2017, 15:50  [ТС]
moose test, Даценд, в таком виде работает. спасибо.
0
 Аватар для ata
269 / 253 / 186
Регистрация: 28.10.2015
Сообщений: 723
01.02.2017, 12:06
C#
1
2
3
4
5
6
7
8
9
10
using System;
using System.Linq;
 
class Program
{
    public static void Main()
    {
        Console.WriteLine(String.Concat("мама мыла раму".Select(ch => ch == ' ' ? " " : (ch - 'а').ToString("00"))));
    }
}
0
01.02.2017, 12:35

Не по теме:

ata, подразумевается (похоже) кодирование всех символов в строке, а не только букв алфавита.

0
 Аватар для KotovichMX
-27 / 7 / 1
Регистрация: 19.07.2011
Сообщений: 627
01.02.2017, 13:54  [ТС]
мистика. а где же
C#
1
keyString
?
0
Эксперт .NET
 Аватар для Usaga
14724 / 9493 / 1362
Регистрация: 21.01.2016
Сообщений: 35,790
01.02.2017, 13:59
Цитата Сообщение от KotovichMX Посмотреть сообщение
мистика.
Это не мистика. Этот вариант на порядки хуже (менее эффективен) того, что понравился тебе. Не бери это в расчёт.
0
 Аватар для KotovichMX
-27 / 7 / 1
Регистрация: 19.07.2011
Сообщений: 627
01.02.2017, 14:06  [ТС]
а в чём проблема в быстродействии или невозможно проделать обратное преобразование?

Добавлено через 2 минуты
я так понимаю кейстринг подменили готовой библиотекой. значит в обратном порядке также можно проехаться?
0
Эксперт .NET
 Аватар для Usaga
14724 / 9493 / 1362
Регистрация: 21.01.2016
Сообщений: 35,790
01.02.2017, 14:27
KotovichMX, проблема в том, что для каждого кода каждый раз создаётся свой объект типа String, что очень неэффективно.
0
 Аватар для KotovichMX
-27 / 7 / 1
Регистрация: 19.07.2011
Сообщений: 627
01.02.2017, 14:30  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
для каждого кода создаётся свой объект типа String
это влияет на производительность?
0
Эксперт .NET
 Аватар для Usaga
14724 / 9493 / 1362
Регистрация: 21.01.2016
Сообщений: 35,790
01.02.2017, 14:40
KotovichMX, в запущенном случае - да.
0
 Аватар для KotovichMX
-27 / 7 / 1
Регистрация: 19.07.2011
Сообщений: 627
01.02.2017, 15:38  [ТС]
не врубаюсь что значит в запущенном... в общем эксперимент покажет.
0
 Аватар для KotovichMX
-27 / 7 / 1
Регистрация: 19.07.2011
Сообщений: 627
01.02.2017, 16:04  [ТС]
скажите пожалуйста зачем кодировать в двоичной системе
Цитата Сообщение от ata Посмотреть сообщение
ToString("00")
если можно и проще?
Цитата Сообщение от ata Посмотреть сообщение
ToString("0")
Миниатюры
Как проделать замену символов алфавита более оптимально, используя один массив?  
0
Эксперт .NET
 Аватар для Usaga
14724 / 9493 / 1362
Регистрация: 21.01.2016
Сообщений: 35,790
01.02.2017, 17:29
KotovichMX, в "запущенном" значит, на большом количестве текста будет работать дольше, чем более оптимальный вариант. На сколько дольше - экспериментируй.

Цитата Сообщение от KotovichMX Посмотреть сообщение
скажите пожалуйста зачем кодировать в двоичной системе
Это не двоичная система, это запись числа с ведущим нулём. Это уже раз пять обсуждалось. Чтобы ты смог отличить, где заканчивается одно число и начинается другое.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.02.2017, 17:29

Как разбить строку символов используя один разделитель
Как разбить строку символов используя один разделитель. Например: Dim strTest As string Dim strTest_1 As string Dim strTest_2 As...

Как перевести массив байт в массив символов, используя определённую кодировку?
Всем доброго времени суток, ув. форумчане! Делаю алгоритм LFSR, почти закончил. Но застопорился на вот таком этапе. У меня имеется...

Запись алфавита в массив символов
Народ как можно записать алфавит в массив символов? Я пробовал сделать как с 1 символом но на экран выводятся хрень. for(mas1 ...

Конвертация файла в массив аски символов, как сделать более читаемый код?
Задача следующая, есть обычный файл index.html каждый символ внутри него надо перегнать через аски преобразование и занести его в...

Как соединить массив символов и один символ
void Match(char x) { if (Look == x) GetChar(); else { char s=&quot;\'&quot;; strcat(s, x); ...


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

Или воспользуйтесь поиском по форуму:
77
Ответ Создать тему
Новые блоги и статьи
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru