Výsledky 1 až 13 z 13

Téma: [java] vypis dle zadani z konzole

  1. #1

    Standardní [java] vypis dle zadani z konzole

    Mam tady problem s kterym uz si nevym rady mam vymyslet program kde zadam na prikazovy radce nejaky zvire a nasledne se prohleda textovy soubor a ten se mi zpetne vypise soucasne s poctem slov obsazenych v tom textaku uz sem vymyslel program ktery mi vypise pocet stejnych slov bohuzel si nevym rady s tim prikazovym radkem.Jo a jeste bych chtel aby se nabrali pri vypisu v potaz cisla.Nebyl by tu nekdo tak hodny a nepomohl mi s tim uz sem z toho uplne zoufalej.Předem děkuji.

    tady je ukazka textaku:
    pes Rek
    kocka Micka
    kocka Mourek
    pes Alik
    morce Smudla
    morce Fousek
    kocka Packa
    pes Bety
    pes Asta
    kocka Paty
    pes Fik
    0 Asta

    No a tady je muj program:
    import java.util.*;
    import java.io.*;

    public class TvorbaMapy {

    public static HashMap vytvor(String jmenoSouboru) {
    LinkedList Ln = new LinkedList();
    HashMap tm = new HashMap();
    try {
    BufferedReader veta = new BufferedReader (new FileReader(jmenoSouboru));
    String s,s1,s2 = " ";
    while ((s = veta.readLine()) != null) {
    StringTokenizer t = new StringTokenizer (s);
    s1 = t.nextToken();
    s2 = t.nextToken();
    if (tm.containsKey(s1)) {
    int i = ((Integer)tm.get(s1)).intValue();
    tm.put(s1,new Integer(++i));
    }
    else {
    tm.put(s1, new Integer(1));
    };
    }
    veta.close();
    }
    catch (FileNotFoundException e1) {
    System.out.println("Chyba pri cteni");
    }
    catch (IOException e2) {
    System.out.println("Chyba pri cteni");
    }
    return tm;
    }
    public static void tiskMapy( HashMap m) {
    Iterator it = m.entrySet().iterator();
    while(it.hasNext()) {
    Map.Entry a = (Map.Entry)it.next();
    System.out.println(a.getKey()+"\t"+a.getValue());
    }
    }

    public static void main (String []args) {
    tiskMapy(vytvor("zvirata.txt"));
    }
    }
    Core2Quad Extreme 2,6GHz, P35-DS4, 8GB DDR2 800MHz, 2x320GB SATAII, Nvidia 8800GT 512MB

  2. #2

    Standardní

    Parametry z prikazoveho radku jsou v poli args v metode main.

    Jeste dotaz - nejak jsem prehledl, co s tim vstupem zadanym z prikazoveho radku chces potom provadet ?

    "Cisla" - tim myslis opravdu jen cisla nebo i Stringy, ktere obsahuji minimalne jedno cislo napr. "pes4" , "2abc3f" ?

  3. #3

    Standardní

    No chtel bych napsat nazev nejakyho zvirete do prikazovyho radku a potom aby me to vyhodilo nazev s poctem opakovani.Jo a tema cislama myslim opravdu jenom cisla.Bohuzel nevim jak to tam vklinit do toho programu.Jinak diky za radu

  4. #4

    Standardní

    No to se teda divim, ze mas problem s tim co je trivialni ve srovnani s tim, co si uz napsal

    String zvire = args[0];

    Potom je mozna ale zbytecne pocitat vyskyt vsech slov?


    Zjisteni jestli je retezec cislo napr. takto:
    Kód:
    public static boolean isNumber(String _s) {
    try {
      int i = Integer.parseInt(_s);
      return true;
    } catch(NumberFormatException e) {
      return false;
    }
    }

  5. #5

    Standardní

    Díky moc uz sem se s tim tak trapil ze sem si nevedel rady navic me to jednou funguje a jednou ne a protoze tomu vubec nerozumim tak sem z toho uplne zoufalej.

  6. #6

    Standardní

    No a uz to mas hotovy ? Jestli ne tak ti to upravim - je to jen detail...

  7. #7

    Standardní

    Bohužel to jeste nemam kdyby si mi s tim pomohl byl bych ti moc vdecny.Jo ted sem se zrovna dozvedel ze se k tem programum dela jeste nejaka dokumentace nevis jak se to dela nejak sem to nepochopil.

  8. #8

    Standardní

    Jen jsem to trosku upravil.

    Kód:
    /*
     * Zvirata.java
     *
     */
    
    
    import java.util.*;
    import java.io.*;
    
    public class Zvirata {
        
        public Map vytvor(String jmenoSouboru) {
            LinkedList Ln = new LinkedList();
            Map tm = new HashMap();
            try {
                BufferedReader veta = new BufferedReader(new FileReader(jmenoSouboru));
                String s = "";
                while ((s = veta.readLine()) != null) {
                    StringTokenizer t = new StringTokenizer(s);
                    String s1 = t.nextToken();
                    //String s2 = t.nextToken();
                    if(!isNumber(s1)) {
                        if (tm.containsKey(s1)) {
                            int i = ((Integer)tm.get(s1)).intValue();
                            tm.put(s1,new Integer(++i));
                        }
                        else {
                            tm.put(s1, new Integer(1));
                        };
                    }
                }
                veta.close();
            }
            catch (FileNotFoundException e1) {
                System.out.println("Chyba pri cteni");
            }
            catch (IOException e2) {
                System.out.println("Chyba pri cteni");
            }
            return tm;
        }
        
        public static void tiskMapy(Map m) {
            Iterator it = m.entrySet().iterator();
            while(it.hasNext()) {
                Map.Entry a = (Map.Entry)it.next();
                System.out.println(a.getKey()+"\t"+a.getValue());
            }
        }
        
        public static boolean isNumber(String _s) {
            try {
                int i = Integer.parseInt(_s);
                return true;
            } catch(NumberFormatException e) {
                return false;
            }
        }
            
        public static void main(String []args) {
            try {
                Zvirata z = new Zvirata();
                Map m = z.vytvor("d:/prog/java/zvirata/zvirata.txt");
                Zvirata.tiskMapy(m);
                
                System.out.println("-------------------------------------");
                if( (args!=null)&&(args.length>0) ) {
                    String zvire = args[0];
                    if(m.containsKey(zvire)) {
                        System.out.println&#40;"pocet >"+zvire+"< = "+m.get&#40;zvire&#41;&#41;;
                    &#125; else &#123;
                        System.out.println&#40;zvire+" nenalezeno !"&#41;;
                    &#125;
                    
                &#125; else &#123;
                    System.out.println&#40;"Nebyl zadan parametr !"&#41;;
                &#125;
                System.out.println&#40;"-------------------------------------"&#41;;
            &#125; catch &#40;Exception e&#41; &#123;
                e.printStackTrace&#40;&#41;;
            &#125;
        &#125;
        
        
    &#125;

  9. #9

    Standardní

    Tou dokumentaci mas na mysli asi JavaDoc - urcitou syntaxi psane komentare, z kterych se automaticky vygeneruje html help.

    Lehky uvod pro zacatek viz napr.
    http://www.builder.cz/art/java/javadoc.html

  10. #10

    Standardní

    Dekuju ti moc za pomoc.Ale mam tu takovej problem kdyz zkompiluju nejakej program tam me to hodi chybu i kdyz vim ze to mam spravne tak to kompiluju treba jeste 2x a potom se to zkompiluje dobře.Bohužel teprve začinam tak si moc jistej nejsem takze me to uplne privadí k zoufalstvi nevis v cem by to mohlo byt?

  11. #11

    Standardní

    Citace Původně odeslal xxx
    Dekuju ti moc za pomoc.Ale mam tu takovej problem kdyz zkompiluju nejakej program tam me to hodi chybu i kdyz vim ze to mam spravne tak to kompiluju treba jeste 2x a potom se to zkompiluje dobře.Bohužel teprve začinam tak si moc jistej nejsem takze me to uplne privadí k zoufalstvi nevis v cem by to mohlo byt?
    A jak to kompilujes - z prikazoveho radku ? Co je to za program - jen jeden .java soubor nebo je jich vic ? Zkus napsat jakou to vyhodi chybu.

  12. #12

    Standardní

    Kompiluju to v Java Sun One Studiu.Nekdy mi to třeba hodi hlašku že mi chybi středník, i kdyz ho tam mam, nebo že mi chybi třida atd. ale když to zkompiluju znova tak už to je OK.

  13. #13

    Standardní

    Tak to je divne - s necim takovym jsem se asi zatim nesetkal.

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •