IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Morseovka

Aktivity
Avatar
Jan Ulrich
Člen
Avatar
Jan Ulrich:22.1.2017 8:35
Scanner sc = new Scanner(System.in);

        System.out.println("Zadej zprávu v abecedě (bez diakritiky), bez mezer: ");
        String s = sc.nextLine();

        String zprava = "";

        String[] morseovyZnaky = {".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."};
        String abecedniZnaky = "abcdefghijklmnopqrstuvwxyz";



        for (int j = 0; j <= s.length(); j++) // for (int j = 0; j <= s.length; j++) char abecedniZnak = s.charAt(j)
        {
         char abecedniZnak = s.charAt(j);
         System.out.println(abecedniZnak);
         int index = -1;
         String mznak = " ";

         for (int i = 0; i < abecedniZnaky.length(); i++)
         {

             if (abecedniZnaky.charAt(i) == abecedniZnak)
             {
                 index = i;
             }
         }

             if (index >= 0)
             {
                 mznak = morseovyZnaky[index];
             }
             zprava = zprava + mznak;
         }
        System.out.println("Dekódovaná zpráva : " + zprava);

Ahoj, poradí někdo zkušenější, proč toto nefunguje Díky!

 
Odpovědět
22.1.2017 8:35
Avatar
Odpovídá na Jan Ulrich
Petr Štechmüller:22.1.2017 9:25

Ahoj, mohl jsi sem alespoň hodit chybu, kterou to vypíše.
Naštěstí to není potřeba, protože chyba je vidět na první pohled.
V prvním for cyklu:

for (int j = 0; j <= s.length(); j++)

iteruješ od 0 do celé délky vstupu, což je problém. Ten vstup si můžeš představit jako pole a Ty zacházíš mimo hranice pole. Takže si to oprav takto:

for (int j = 0; j < s.length(); j++) // Odstraň to rovnítko
Nahoru Odpovědět
22.1.2017 9:25
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.