[ N1k0laK3nj1 @ 01.02.2007. 14:07 ] @
Pozdrav! Evo ja sam novi tu na forumu. Imam jedno pitanje za početak.

Treba mi neki jednostavan algoritam za brojanje riječi u danom text fajlu.
Npr. imam klasu NoviFile koja proširuje klasu File i imam u toj klasi statičku metodu brojiRijeci()
Konstruktor klase NoviFile uzima za argument String koji predstavlja ime datoteke.

Mene zanima najjednostavniji algoritam koji samo izbroji rijeci bez da provjerava dali se rijec vec pojavljivala.

Pa ako netko ima nesto slično, biti ću zahvalan.
[ dootzky @ 01.02.2007. 15:27 ] @
hm hm... broj reci.. to je dosta pipavo, jer rec moze da bude definisana na razne nacine.

ako hoces da brojis broj reci "grubo", mozes da razbijas liniju-po-liniju iz fajla, i da brojis koliko ima space-ova, ali to nece dugo da ti pije vodu.

radio sam ranije programe bas za ovo, samo u c++, i nije lako, jer moras da citas karakter po karakter, i tacno da kapiras sta je rec, da budem precizniji:
-- vitalno je da se REC pravilno IZDEFINISE.

recimo: "rec je niz alfa-numberickih karaketara, minimalne duzine 1, maksimalne duzine 50";

a kako sad to radis - e pa zato je to bilo takmicenje!

citaj red po red, trci kroz while petlju, i broj reci koje nadjes.
dakle kada pocnes od prvog karaktera u redu, stagod on bio, ako je SLOVO, uskaces u while petlju, i sve dok ne nadjes karaketer koji NIJE vise slovo - to ti je sve jedna rec. i tako udri do kraja

zvuci jednostavno, ali ima malo zajebancije, posebno sa znakovima interpunkcije i sl.

bacicu ti kod kasnije kad se vratim kuci, ili mogu da ti ga prevedem u PHP pa da vidimo kako ce da radi
nije toliko tesko, a interesantan je programerski problem, uzivaj

poz,
dootzky

[Ovu poruku je menjao dootzky dana 01.02.2007. u 16:37 GMT+1]
[ djalfirevic @ 01.02.2007. 21:13 ] @
Citat:
N1k0laK3nj1: Pozdrav! Evo ja sam novi tu na forumu. Imam jedno pitanje za početak.

Treba mi neki jednostavan algoritam za brojanje riječi u danom text fajlu.
Npr. imam klasu NoviFile koja proširuje klasu File i imam u toj klasi statičku metodu brojiRijeci()
Konstruktor klase NoviFile uzima za argument String koji predstavlja ime datoteke.

Mene zanima najjednostavniji algoritam koji samo izbroji rijeci bez da provjerava dali se rijec vec pojavljivala.

Pa ako netko ima nesto slično, biti ću zahvalan.


Faco u JDK dokumentaciji imas klasu StreamTokenizer i u njoj imas simbolicke konstante. Jedna od njih je TT_WORD kojom ispitujes da li odgovarajuci token predstavlja rec, slovo, broj, i sl.

Ona ce ti resiti problem.

Nesto tipa...

Code:

Reader r = new BufferedReader(new InputStreamReader("putanja do fajla"));
StreamTokenizer s = new StreamTokenizer(r);
int wordCount = 0;
int word = 0;
while((word = s.nextToken()) != s.TT_EOF){
    if(word == s.TT_WORD){
       wordCount += 1;
    }
}


Pozdrav.

[Ovu poruku je menjao djalfirevic dana 01.02.2007. u 22:25 GMT+1]
[ N1k0laK3nj1 @ 01.02.2007. 22:00 ] @
Zahvaljujem. To mi je trebalo. Buduči da jos ucim javu nisam jos bas najspretniji s dokumentacijom. Ja sam mislio nepraviti nesto slicno kako je dootzky rekao, ali to bas i nije elegantno i jednostavno.