ilość znaków, słów i linii JTextPane

0

Witam,
napotkałem kolejny problem. Z JTextArea jakoś wiedziałem jak to zrobić bo były metody :), żeby pobrać ilość linii np.
Podpowiedzcie jak zrobić, żeby policzyć ilość linii i słów w polu tekstowym JTextPane. Ilość liter sobie policzyłem :) to nie problem. Ale tego za Chiny jakoś nie potrafię :(

Pozdrawiam

0

A jak policzyłeś litery ? :> Analogicznie możesz policzyć spacje i znaki nowej linii, dodać do tego 1 i masz ilość słów (zakładając, że nie ma tam dwóch spacji po sobie). Z ilością linii, to wystarczy policzyć znaki nowej linii...

0
[losowa nazwa] napisał(a)

A jak policzyłeś litery ? :> Analogicznie możesz policzyć spacje i znaki nowej linii, dodać do tego 1 i masz ilość słów (zakładając, że nie ma tam dwóch spacji po sobie). Z ilością linii, to wystarczy policzyć znaki nowej linii...

ok tylko właśnie nie wiem jak to będzie, bo zależy jak kto wpisze :) może być spacja powtórzona albo kilka spacji ktoś może wpisać, taba może wstawić itd. a linie spróbuję policzyć tak jak mówisz

0
 jtextpane.getSelectionEnd()  

oto on :)

2

Spróbuj tak:

String s=jtextpane.getStyledDocument().getText(0,getStyledDocument().getLength()));
StringTokenizer st=StringTokenizer(s);
int words=st.countTokens();
0

dzięki BO :) na ciebie zawsze można liczyć.
Oczywiście twoja metoda działa i teraz wiem w czym szukać dalej :)

0

a może ktoś podpowie jak to jest z liczeniem linii w JTextPane, bo za Chiny ludowe nie mogę dojść jak je zliczyć :(

0

Przecież masz kod dwa posty wcześniej.

0
bo napisał(a)

Spróbuj tak:

String s=jtextpane.getStyledDocument().getText(0,getStyledDocument().getLength()));
StringTokenizer st=StringTokenizer(s);
int words=st.countTokens();

Jak mówisz o tym to niestety ale ten kod liczy SŁOWA :)

0

Ech... Masz:

// zaznaczam, że to brutalna metoda - po ludzku powinno się policzyć znaki nowej linii ;p
// brutalna, bo caly tekst, ktory masz w stringu kopiuje (!) do tablicy stringow (kazda linia w oddzielnej komorce) i potem zwraca rozmiar tej tablicy
String s = ... // jak w poprzednim przykładzie
int linie = s.split("\n").length;
0

Tak, mówię właśnie o tym:

String s=jtextpane.getStyledDocument().getText(0,getStyledDocument().getLength()));
StringTokenizer st=StringTokenizer(s);
int words=st.countTokens();

Zakładałem, że w tym dziale nie piszą początkujący i każdy potrafi zajrzeć do dokumentacji i zobaczyć jaka subtelną zmianę trzeba zrobić by ten kod liczył wiersze.

1 użytkowników online, w tym zalogowanych: 0, gości: 1