Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 12. diel - Textové reťazce v C# do tretice - Split a Join

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Dušan Kovářík:8.6.2018 0:11

Kódování do Morseovy abecedy jsem udělal v podstatě jen úpravou kódu pro jeho dekódování. Místo cyklu

foreach

jsem použil

for

, v němž jsem si uložil Morseovy znaky kódované zprávy do prvků pole

string

ů, abych si mohl následně vyzkoušet metodu Join().

// řetězec, který chceme zakódovat
string zprava = "itnetwork";
Console.WriteLine("Původní zpráva: {0}", zprava);

// vzorová pole
string abecedniZnaky = "abcdefghijklmnopqrstuvwxyz";
string[] morseovyZnaky = {".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....",
    "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-",
    "...-", ".--", "-..-", "-.--", "--.."};

// pole znaků pro zakódovanou zprávu v morzeovce
string[] znaky = new string[zprava.Length];

// iterace abecedních znaků
int index;
for (int i = 0; i < zprava.Length; i++)
{
    znaky[i] = "?";
    index = abecedniZnaky.IndexOf(zprava[i]);
    if (index >= 0) // znak nalezen
        znaky[i] = morseovyZnaky[index];
}

// spojení pole znaků se zakódovanou zprávou do jednoho řetězce
string s = String.Join(" ", znaky);

Console.WriteLine("Zakódovaná zpráva: {0}", s);
Console.ReadKey();
Avatar
Odpovedá na Dušan Kovářík
Dušan Kovářík:8.6.2018 1:09

Omlouvám se za rozsekaný text na začátku před kódem :)

Avatar
Odpovedá na Marek Kaczmarczyk
Tibor Galloš:23.10.2018 15:13

Presne tak isto som to napísal aj ja :)

Odpovedať
Všetko je možné.
Avatar
David Hirka
Člen
Avatar
David Hirka:16.11.2018 11:35

Moje zpětné zakódování. Pro hledání indexu jsem použil pole. Asi trochu složitější ale funguje mi i dvojitá mezera mezi slovy:

                        // řetězec, který chceme dekódovat
            Console.WriteLine("Zadejte zprávu k zakódování:");
            string s = Console.ReadLine().ToLower();
            Console.WriteLine("Původní zpráva: {0}", s);
            // řetězec s dekódovanou zprávou
            string zprava = "";

            // vzorová pole
            char[] abecedniZnaky = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', ' ' };
            string[] morseovyZnaky = {".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....",
"..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-",
"...-", ".--", "-..-", "-.--", "--..", " "};

            foreach(char morseuvZnak in s)
            {
                string abecedniZnak = "?";
                int index = Array.IndexOf(abecedniZnaky, morseuvZnak);
                if (index >= 0) // znak nalezen
                    abecedniZnak = morseovyZnaky[index];
                zprava += abecedniZnak;
                zprava += " ";
            }
            Console.WriteLine("Zakódovaná zpráva: {0}", zprava);
            Console.ReadKey();
Editované
Avatar
Jan Křížek:21.11.2018 18:47

Zpětné zakódování do morseovi abecedy jsem zapsal takto:

// řetězec se zakódovanou zprávou
string[] znaky = new string[s.Length];

// iterace znaků morseovky
int i = 0;
foreach (char Znak in s)
{
string morseZnak = "?";
int index = alfabeta.Inde­xOf(Znak);
if (index >= 0) // znak nalezen
morseZnak = morse[index];
znaky[i] += morseZnak;
i++;
}
// slepení řetězce na znaky morseovky
Console.Write­Line($"Dekódo­vaná zpráva: {string.Join(" ",znaky)}");

A funguje bez problému :)

Avatar
Patrik Pastor:31.12.2018 15:47

Jaky datovy typ bere metoda s.Join() do argumntu? Používám ji u pole, ale pořd mi vyskakuje že je nulové přetíženi. Díky z odpoved.

Avatar
Patrik Pastor:1.1.2019 1:56

Hezký den, chtěl jsem se zeptat, nevíte proč se mi nic nezobrazí (kód pro převedení z slova na morseův znak):

string s = "patrik";
string zprava = "";
string [] abeceda = { "abcdefghijklmnop­qrstuvwxyz" };
string[] morseovka = {".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....",
"..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-",
"...-", ".--", "-..-", "-.--", "--.."};
string[] znak = s.Split(' ');

foreach (string AB in znak)
{
string morseuvznak = "";
int index = Array.IndexOf(a­beceda, AB);
if (index >= 0)
morseuvznak = morseovka[index];
zprava += morseuvznak;
}
Console.Write­Line(zprava);
Console.ReadKey();

Dík za odpověď

Avatar
pocitac770
Tvůrce
Avatar
Odpovedá na Patrik Pastor
pocitac770:1.1.2019 6:53

Používáš pole stringů, kde na první pozici máš celou abecedu. To je oním problémem. Hledáš konkrétní znak v onom poli, ale ten tam nenajdeš, protože tam... Není.
Můžeš na to jít buď tak, že budeš mít pole charů jednotlivých znaků abecedy, kde budeš hledat onen znak a pak ho připisovat, nebo použiješ samostatný string, a následně hledat znak na pozici x ve stringu

Avatar
Odpovedá na Patrik Pastor
Neaktivní uživatel:1.1.2019 10:58

A krom toho co psal pocitac770 jsi asi chtěl použít <code>s.ToCha­rArray()</code>.

Odpovedať
Neaktivní uživatelský účet
Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 90.