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 – 15. diel - Textové reťazce v Jave 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
Odpovedá na Maroš Škumát
Jana Cibulková:13.10.2017 9:38

Aby to překládalo i písmeno a musí být if(index >=0){znak = mAbeceda[index];}
Chybí ti =

Avatar
Tereza Přibáňová:28.11.2017 11:25

Poradí mi někdo, jak to opravit? Začala sem se učit prográmko před cca týdnem a ať do toho zírám sebevíc, nevím, kde je to špatně (tuším že to for-loop? ...)

Scanner sc = new Scanner(System.in, "Windows-1250");
        System.out.println("zadejte zprávu k přeložení do Morzeovy abecedy: ");
        String zprava = sc.nextLine().toLowerCase().trim();
        String[] pismena_zpravy = zprava.split("");
        String nova_zprava = "";
        String[] abeceda = {"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[] morseovka = {".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....",
        "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-",
        "...-", ".--", "-..-", "-.--", "--.."};
        for (int j = 0; j< pismena_zpravy.length; j++){

        String morseuv_znak = "";
        for (int i = 0; i < abeceda.length; i++){
            int index = -1;
            if (abeceda[i].equals(pismena_zpravy[j])){
                index = i;
            }
            if (index >= 0){
            morseuv_znak = morseovka[index];
        }
            nova_zprava += morseuv_znak;
        }
    }
    System.out.println("Dekódovaná zpráva: \n" + nova_zprava);
}
}
Avatar
Odpovedá na Tereza Přibáňová
Tereza Přibáňová:28.11.2017 21:13

Tak už jsem na to přišla :D ... Nejradši bych to smazala, ale nechám to tu jako odstrašující případ ;)

Avatar
zitekv
Člen
Avatar
Odpovedá na Tereza Přibáňová
zitekv:28.11.2017 21:35

Ahoj,
pokud ti to nefunguje je dobré říci více o tom co nefunguje a co "reklamuješ".
Určitě to něco hlásí - a to je většinou zásadní pro hledání příčiny tzn. pokud se ptáš na problém je dobré přiložit chybové hlášení z IDE.

Avatar
Odpovedá na zitekv
Tereza Přibáňová:29.11.2017 21:59

Nic to nehlásilo, ale všechny znaky se vypsaly 26x ... Ale děkuju z upozornění, příště budu vědět :)

Avatar
MiroslavP
Člen
Avatar
MiroslavP:21.1.2018 19:44

Díky skvělému seriálu Java jsem opět objevil kouzlo programování. Děkuji MiP

Program dekoder Morse:
public class JavaApplication40 {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System­.in,"Windows-1250");
Vzorové soubory znaků:
String[] 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[] morseSoubor = {".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....",
"..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-",
"...-", ".--", "-..-", "-.--", "--.."};
String oddelovac = " "; //oddělovač mezi Morse znaky (mezera)
//Morse zpráva k dekódování, jednotlive znaky jsou odděleny mezerou
String abecedniZprava = "ITNETWORK";
String kodovanaZprava = "";
int index = -1;
pořadí morse znaku v souboru v přépadě shody je rúzné od -1
int j = 0; //slouží pro iteraci v abecednim souboru
System.out.prin­tln("Kodér Morseovy abecedy");
System.out.prin­t("Zpráva k zakódování: ");
System.out.prin­tln(abecedniZ­prava);
//Rozdělení Abecední zprávy na jednotlivé Abecední znaky
String[] znaky = abecedniZprava­.split("");
int l = znaky.length;
for (int i=0; i < l; i++){
// System.out.prin­tln(znaky[i]);
}
//iterace Jednotlivých abecednich znaků a přiřazení příslušného Morse znaku
for (int i = 0; i < l ;i++){
while (index < 0){
if (znaky[i].equ­als(abecedniZ­naky[j]))
{
index = j;
kodovanaZprava = kodovanaZprava + String.format("%s%s",m­orseSoubor[in­dex],oddelovac);
}
else{
j++;
}
}
index = -1;
j = 0;
}
System.out.prin­tln("Kódovaná zpráva: " +kodovanaZprava);
}
}

Avatar
Moni
Člen
Avatar
Moni:19.3.2018 9:11

Když to udělám podobným způsobem tak mi to jede, ale já bych potřebovala jak převést char na string.
for(char aZnak : slova.toCharA­rray()){
for(int i=0;i< abeceda.length;i++){

if(aZnak == abeceda[i]){

Avatar
pocitac770
Tvůrce
Avatar
Odpovedá na Moni
pocitac770:20.3.2018 1:14

Pokud chceš String z takto více znaků, stačí klasicky "přičítat" char ke Stringu

String s = "";
//....
s += aZnak;

Pokud ale výslovně postřebuješ z jednoho charu String (což nedává v takovémto příkladu smysl), tak se jedná o

String s = String.valueOf(aZnak);
Editované
Avatar
Moni
Člen
Avatar
Moni:20.3.2018 7:28

Jo, super, už to jede. Jedna se o předělání většího počtu prográmků a tak se mi to nechtělo celé rozkopávat. A tohle je nejjednodušší. Díky moc.

Avatar
Josef Pospíšil:6.4.2018 13:06

V článku je, že:

CompareTo()
Umožňuje porovnat dva řetězce podle abecedy. Vrací -1 pokud je první řetězec před řetězcem v parametru, 0 pokud jsou stejné a 1 pokud je za ním:

Ale já když to zkoušel, tak to háže jiné číslo a to v závislosti na tom jak daleko jsou abecedně od sebe. Takže -1 a 1 je to jen v případě, že se porovnávají slova, jejichž písmena abecedně sousedí jinak je tam třeba mezi "akát" a "kráva" -10.

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 127.