Avatar
syriamop35
Člen
Avatar
syriamop35:

Ahoj lidi, mam takovej problem, ze mam zadany ukol, ktery chapu, ale nejak neznam moc ty prikazy :
Vytvořte třídu, jejíž instance budou reprezentovat níže uvedené statistické údaje zadaného textu. Text se objektu předává opakovaným voláním jeho metody s jedním parametrem typu String. Každé jedno zavolání představuje zpravidla jeden řádek rozsáhlejšího textu, ovšem, pokud řetězec obsahuje znaky pro zalomení řádku (ASCII CR LF), je potřeba započítat více než jeden řádek na jedno zavolání (bonus, v základní variantě předpokládejte, že jedno volání je jeden řádek a CR LF považujte pouze za obyčejné řídící znaky).

Analyzující metoda zpracuje řetězec znak po znaku a určí (průběžně) četnost (počet výskytů) následujících skupin znaků:

číslice
písmena
malá
velká
bílé mezery
řídící znaky podle ISO
Kromě toho si objekt udržuje i počet zpracovaných řádků. Všechny statistické údaje jsou celočíselné informace pouze pro čtení (tzn., že mají veřejný getter).

Přidejte také metodu, která statistiku vynuluje a připraví objekt pro novou dávku řetězců.
... //ja dokazu udelat, ze z textu mi to rekne pocet samohlasek, souhlasek a tech dalsich znaku, jak jste to meli na strankach, ale tomuhle fakt nerozumim.

 
Odpovědět 9.1.2015 7:33
Avatar
Contrix
Redaktor
Avatar
Odpovídá na syriamop35
Contrix:

Doporučuji ti pročíst si tutoriály v sekci http://www.itnetwork.cz/java/oop .

Jinak třída by měla vypadat asi nějak takto:

public class Pocitadlo{
    private static int cislice = 0;
    private static int pismena = 0;
    .
    .
    .
    public void analyzuj(String retezec){
        //tvůj analizační kód
    }
    public void resetAnalyzy(){
        cislice = 0;
        pismena = 0;
        .
        .
        .
    }
    public int getCislice(){
        return (cislice);
    }
    public int getPismena(){
        return (pismena);
    }
    .
    .
    .
}
Editováno 9.1.2015 8:25
Nahoru Odpovědět 9.1.2015 8:22
Jsou zloději, které zákon netrestá, třebaže kradou člověku to nejcennější čas.
Avatar
syriamop35
Člen
Avatar
Odpovídá na Contrix
syriamop35:

Jo moc dekuju...zkusim si to procist a snad to nejak udelam.

 
Nahoru Odpovědět 12.1.2015 7:32
Avatar
syriamop35
Člen
Avatar
syriamop35:

;( jeste dnes nad tim dumam a ne a ne na to prijit...ja bych umel akorat treba udelat, ze mam txt soubor, kterej bych v netbeans definoval a scanoval tak, ze se mi zobrazi a pak by zobrazil podle vaseho kodu samohlasky atd...ale tohle fakt nevim. Uz vubec nechapu vetu "Kromě toho si objekt udržuje i počet zpracovaných řádků. Všechny statistické údaje jsou celočíselné informace pouze pro čtení (tzn., že mají veřejný getter)." - mohl by mi nekdo vypracovat ten kod s tim, ze kdyby mel nejaky problem, tak bych se snazil s tim taky pomoci...Javu se teprve zacinam ucit...zacinal jsem Pascalem a ten ackoliv mam na "akademicke urovni", tak se mi skoro vubec nehodi.

 
Nahoru Odpovědět 13.1.2015 21:32
Avatar
syriamop35
Člen
Avatar
Odpovídá na syriamop35
syriamop35:

a jeste bych poprosil vysvetleni, co jsou to iso znaky

 
Nahoru Odpovědět 13.1.2015 21:33
Avatar
syriamop35
Člen
Avatar
syriamop35:
package ukoly;

/**
 *
 * @author Samir
 */
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

import java.util.Scanner;
import java.util.StringTokenizer;
public class zkousim {
    public static void main(String[] args) throws IOException {
        String s = "ASDasdas51ty355aYEio asdadas";





Scanner console = new Scanner(s);

            System.out.println(s);


            Scanner in = new Scanner(s);

            int slova = 0;
    int lines = 0;
    int chars = 0;
    while(in.hasNextLine())  {
        lines++;
        String line = in.nextLine();
        chars += line.length();
        slova += new StringTokenizer(line, " ,").countTokens();//na tento prikaz jsem prisel na internetu, ale popis v Eclipsu mi ho vysvetlil

    }
            System.out.println( s.replaceAll("\\D", "").length()); // to je to prvni zobrazeny cislo - pocet cisel (ciselnych znaku) ve stringu
            System.out.println("Pocet radku, ktery ten string obsahuje: " + lines);
            System.out.println("Pocet slov: " + slova);



System.out.println(s);



        int pocet_malych_samohlasek = 0;
        int pocet_malych_souhlasek = 0;
        int pocet_velkych_samohlasek = 0;
        int pocet_velkych_souhlasek = 0;


        String male_samohlasky;
        male_samohlasky = "aeiouy";
        String male_souhlasky;
        male_souhlasky = "bcdfghjklmnpqrstvwxz";
        String velke_samohlasky;
        velke_samohlasky = "AEIOUY";
        String velke_souhlasky;
        velke_souhlasky = "BCDFGHJKLMNPQRSTVWXZ";
        String celkovy_pocet_samohlasek;
        celkovy_pocet_samohlasek = male_samohlasky + velke_samohlasky;
        String celkovy_pocet_souhlasek;
        celkovy_pocet_souhlasek = male_souhlasky + velke_souhlasky;
        String celkovy_pocet_pismenek;
        celkovy_pocet_pismenek = celkovy_pocet_samohlasek + celkovy_pocet_souhlasek;




        for (char c : s.toCharArray())
        {
            if (male_samohlasky.contains(String.valueOf(c)))
                            pocet_malych_samohlasek++;
            else
            if (male_souhlasky.contains(String.valueOf(c)))
                            pocet_malych_souhlasek++;
        }
        for (char e : s.toCharArray())
        {
            if (velke_souhlasky.contains(String.valueOf(e)))
                            pocet_velkych_souhlasek++;
            else
            if (velke_samohlasky.contains(String.valueOf(e)))
                            pocet_velkych_samohlasek++;
        }

                //bonus:
        Scanner keyboard = new Scanner(s);

        System.out.println("Which file?");
        String fileName = keyboard.next(s);

        FileReader fileReader = new FileReader(fileName);
        BufferedReader reader = new BufferedReader(fileReader);

        int longest = 0;

        while (true) {

            String line = reader.readLine();
            if (line == null) {
                break;
            }

            if (line.length() > longest) {
                longest = line.length();
            }
        }

        reader.close();

        System.out.println("The longest line contained " + longest + " character(s)");

        reader.close();

        System.out.println("The longest line contained " + longest + " character(s)");
        System.out.printf("Malych samohlasek: %d\n", pocet_malych_samohlasek);
        System.out.printf("Malych souhlasek: %d\n", pocet_malych_souhlasek);
        System.out.printf("Velkych souhlasek: %d\n", pocet_velkych_souhlasek);
        System.out.printf("Velkych samohlasek: %d\n", pocet_velkych_samohlasek);
        System.out.printf("Nepísmenných znaků: %d\n", s.length() - celkovy_pocet_pismenek);

//jestli tam jsou nejake chyby, tak za to se fakt omlouvam, ale delal jsem na tom celkem dlouho a uz fakt nic moc nevim

    }
}

//doufam, ze je to aspon z 90% spravne

Akceptované řešení
+5 Zkušeností
Řešení problému
 
Nahoru Odpovědět 13.1.2015 23:32
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 6 zpráv z 6.