[ casper.link @ 26.01.2013. 21:07 ] @
Problem je vjerovatno u mom neznanju jer sam davno odslusao objektno programiranje pa se dosta stvari ne sjecam, a imam ovaj zadatak iz drugog predmeta.
Radi se o parsiranju teksualnog fajla u kome se nalazi jedna linija u obliku
0/A/1/2/null;1/B/3/4/null;2/C/null/5/null ...
koja čini stablo koje treba obići po inorder algoritmu. Ovi brojevi su indeks, vrijednost (slovo), lijevi i desni potomak.

E sad, ja ima problem sa ovim djelom kooda ispod. Kod crvenih redova mi izbacuje gresku ali ne znam da je rijesim pa trazim malu pomoć. Ja sam zamislio da ovaj citav red ucitam u buffer i da ga izdjelim delimiterom pa da u tim djelovima primjenim regex patern. Ne znam da li je to uopste i izvodljivo.


Ako imate neku bolju ideju za parsiranje rado ću je pokušati implementirati.

Hvala na pomoći u svakom slučaju :D


...
buffer = ulazniFajl.readLine();
String delimiter = "[;]";
tokens = buffer.split(delimiter);

if(tokens.matches("\\w+\\w+\\w+\\w+\\w+"))
{
nodeMatch = nodePattern.matcher(tokens);
cvor = this.parsirajCvor(nodeMatch);
...
}


[Ovu poruku je menjao casper.link dana 26.01.2013. u 22:24 GMT+1]
[ hoplit @ 27.01.2013. 12:47 ] @
cemu onda ovaj null sluzi ?
a za parsiranje probaj ovo :
(najprije ucitaj iz tog fajla u neki string t)



public class TestRegex {

static String t ="0/A/1/2/null;1/B/3/4/null;2/C/null/5/null ";


public static void main(String[] args) {
Pattern testpatern=Pattern.compile("(\\d.+?)[;|\\s]");
Matcher m=testpatern.matcher(t);
while(m.find())
{
System.out.println(m.group(1));
}

}
Dobices :

0/A/1/2/null
1/B/3/4/null
2/C/null/5/null
[ casper.link @ 27.01.2013. 13:29 ] @
Zaboravio sam reći za ovo null na kraju. To je postotak ponavljanja ali se ne koristi u ovom zadatku. A inace null u fajlu na ostalim pozicijama označava da nema potomaka. Hvala za ovaj dio kooda. Imam vec ideju kako ga uklopiti.