Hledáš dárek, který neskončí v koši? Nyní 90 % extra kreditů ZDARMA s promo kódem PREKVAPENI90. Zjisti více:
NOVINKA: Staň se datovým analytikem od 0 Kč a získej jistotu práce, lepší plat a nové kariérní možnosti. Více informací:

Diskuze – Lekce 14 - Textové řetězce v Javě podruhé - Práce s jednotlivými znaky

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Nejnovější komentáře jsou na konci poslední stránky.
Avatar

Člen
Avatar
:2.11.2015 16:46

Čaute, prosím vás v akom článku sa vysvetľovala metoda contains?

Avatar
Tomáš Brůna
Tvůrce
Avatar
Odpovídá na
Tomáš Brůna:2.11.2015 18:24

Ahoj tady: http://www.itnetwork.cz/…typy-string/ příště zkus hledat :)

Odpovědět
Vi veri universum vivus vici
Avatar
Petr Kopecký:5.5.2016 9:33

Ahoj prosim o radu, proc mi nefunguje nasledujici kod?

  • Nerozumím proc u else mezi dvouma if mi sviti chyba?
  • pocitani souhlasek a samohlasek jsem napsal malinko jinak než je uvedeno v lekci. Ale melo by to podle me fungovat. Bohuzel vystup je hodnota 26 jak pro souhlasky tak samohlasky. Testovaci text1 obsahuje celkem 26 znaku.
//-----------------
            String text1 = "Testovaci veta plna znaku.";

            int samohlasek = 0;
            int souhlasek = 0;


            String samohlasky = "aeiouyáéěíóúůý";
            String souhlasky = "bcčdďfghjklmnpqrřsštťvwxzž";

            //hlavni cyklus
            for (int i=0; i< text1.length(); i++)
            {
                if (samohlasky.contains(String.valueOf(text1.charAt(i))));
                    samohlasek += 1;

                else
                if (souhlasky.contains(String.valueOf(text1.charAt(i))));
                    souhlasek += 1;
            }

            System.out.println("pocet samohlasek v textu:" + samohlasek);
            System.out.println("pocet souhlasek v textu:" + souhlasek);
//-----------------

Děkuji za rady

Avatar
Odpovídá na Petr Kopecký
Petr Štechmüller:5.5.2016 9:40

Ahoj, za if se nepíše středník

if (samohlasky.contains(String.valueOf(text1.charAt(i))));  <<<---------
                    samohlasek += 1;
if (souhlasky.contains(String.valueOf(text1.charAt(i))));   <<<----------
                    souhlasek += 1;
Odpovědět
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
Odpovídá na Petr Štechmüller
Petr Kopecký:5.5.2016 9:44

Petr Š: Moc děkuji :o)

Avatar
Roman Havelka:5.6.2016 13:30

Mel bych dotaz - promenna v cyklu je pouze lokalni ?

Avatar
Johnny Cook
Člen
Avatar
Johnny Cook:29.6.2016 23:02

Jen tak pro zajímavost jsem zkusil zagooglit, jak to udělat, aby Cézarova šifra pobrala i diakritiku.

String s = sc.nextLine().trim().toLowerCase();
s = Normalizer.normalize(s, Normalizer.Form.NFD);
s = s.replaceAll("\\p{InCombiningDiacriticalMarks}+", "");

Druhý řádek rozdělí znaky s diakritikou na znak bez ní a samotný akcent (nebo jak to česky nazvat). Třeba z 'á' to udělá "a´"
Třetí řádek odstraní akcenty.

Ten druhý mi přijde celkem ok, i když nevím, co znamená to Form.NFD, ale obsah závorky ve třetím řádku bych asi netipnul.

Pak jsem jen ošetřil

if((int)c>=97 && (int)c<=122)

a pokud ne, tak se šifra neprovádí a char se jen přidá k výsledné zprávě. Je pravda, že tím šifra ztrácí na účinnosti, protože podle délky slov se snáze odhadne obsah. Například, tradičně oblíbená věta "Ahoj, jak se máš?" se při posunu 1 přeloží na "bipk, kbl tf nbt?"

Přišlo mi zajímavé to tady uvést.

Avatar
Dynlik
Člen
Avatar
Odpovídá na Roman Havelka
Dynlik:3.8.2016 13:07

Roman H.: Jo, po skončení cyklu se zruší. Když jí použiješ, java ti vyhubuje :-) .

Editováno
Avatar
Karel Klíč
Člen
Avatar
Karel Klíč:19.10.2016 21:13

Nepísmenné znaky se nazývají grafémy.

Avatar
Zdeněk Svoboda:23.1.2017 13:11

Asi triviální dotaz ale z jakého důvodu je v kodu pod nadpisem Cezarova Šifra toto ?

String zprava = "";

Nejnovější komentáře jsou na konci poslední stránky.
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 10 zpráv z 115.