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

ilość znaków, słów i linii JTextPane
mordimer
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 12 lat
  • Postów:52
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

LN
  • Rejestracja:około 16 lat
  • Ostatnio:około rok
  • Postów:1398
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...

mordimer
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 12 lat
  • Postów:52
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

LN
Ponawiam swoją prośbę - podaj KOD, którego użyłeś do policzenia liter (skoro to zrobiłeś). I nie pisz na pocztę, tylko na forum :>
mordimer
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 12 lat
  • Postów:52
0
Kopiuj
 jtextpane.getSelectionEnd()  

oto on :)

2

Spróbuj tak:

Kopiuj
String s=jtextpane.getStyledDocument().getText(0,getStyledDocument().getLength()));
StringTokenizer st=StringTokenizer(s);
int words=st.countTokens();
mordimer
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 12 lat
  • Postów:52
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.

mordimer
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 12 lat
  • Postów:52
0
bo napisał(a)

Spróbuj tak:

Kopiuj
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 :)

LN
  • Rejestracja:około 16 lat
  • Ostatnio:około rok
  • Postów:1398
0

Ech... Masz:

Kopiuj
// 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:

Kopiuj
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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.