znalezienie w texcie cyfr

Odpowiedz Nowy wątek
2006-10-19 16:45

Rejestracja: 15 lat temu

Ostatnio: 5 lat temu

0

Mam taki problem.
mam sobie jakis dłuższy text składający siez kilkudziesięciu wyrazów. oprócz wyrazów sa tez same cyfry. Chciałbym "wyłapać" "wyrazy" składajace sie z samych cyfer. Pobieram wyrazy za pomoca StringTokenizer, ale nie wiem jak sprawdzic czy pobrana wartosc to litery czy cyfry?

Jak to sprawdzic?


Programista wiesza sie razem ze swoim programem

Pozostało 580 znaków

2006-10-19 17:48

Rejestracja: 14 lat temu

Ostatnio: 8 lat temu

0

Np. poprzez wyrazenia regularne.

pozdrawiam
johny


You need to learn how to walk
before you can run

Pozostało 580 znaków

2006-10-19 23:22

Rejestracja: 15 lat temu

Ostatnio: 10 lat temu

0

Samos załatw wreszcie sobie neta, bo nie ma mnie kto gonić do programowania :P


.

Pozostało 580 znaków

samos- autor postu
2006-10-20 09:09
samos- autor postu
0

johny, możesz bardziej dokładniej? Bo może sie troszke źle wyraziłem. Chodzi mi o liczby a nie cyfry A jeśli jest jakas klasa za to odpowiadająca to możesz mi powiedzieć jaka? Nie mam neta w chacie wiec nie mam za bardzo gdzie szukac. Jakiś prosty kodzik też by sie przydał ;).

Pozostało 580 znaków

2006-10-20 10:08

Rejestracja: 14 lat temu

Ostatnio: 8 lat temu

0

Np. tak:

CharSequence input = " sdfkjh5 4353 534kjlk 34kj345   jklj3454kkl  345543 ";
String patternString = "\\s+(\\d+)+\\s+"; 
Pattern pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher(input);
while(matcher.find())
  for (int i=1; i<=matcher.groupCount(); i++) 
    System.out.println(matcher.group(i));

Z zalozeniem, ze na poczatku i koncu jest spacja, zeby odroznic slowo.

pozdrawiam
johny


You need to learn how to walk
before you can run

Pozostało 580 znaków

2006-10-20 11:11

Rejestracja: 15 lat temu

Ostatnio: 5 lat temu

0

A gdzie się wpisuje że szukanymi znakamisa cyfry?


Programista wiesza sie razem ze swoim programem

Pozostało 580 znaków

2006-10-20 11:24

Rejestracja: 14 lat temu

Ostatnio: 8 lat temu

0

\d - digit
(\d+) - grupa skladajaca sie z wiecej niz jednej cyfry

pozdrawiam
johny


You need to learn how to walk
before you can run

Pozostało 580 znaków

2006-10-20 11:34

Rejestracja: 15 lat temu

Ostatnio: 5 lat temu

0

Ok johny dzięki za pomoc. Połącze to ze StringTokenizerem i będzie miodzio:)

Pozdrawiam


Programista wiesza sie razem ze swoim programem

Pozostało 580 znaków

2006-10-20 11:39

Rejestracja: 14 lat temu

Ostatnio: 8 lat temu

0

Nie ma sprawy.

Maly blad:
(\d+) - grupa skladajaca sie z co najmniej jednej cyfry

pozdrawiam
johny


You need to learn how to walk
before you can run

Pozostało 580 znaków

p444z
2008-11-02 17:04
p444z
0
johny_bravo napisał(a)

Np. tak:

CharSequence input = " sdfkjh5 4353 534kjlk 34kj345   jklj3454kkl  345543 ";
String patternString = "\\s+(\\d+)+\\s+"; 
Pattern pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher(input);
while(matcher.find())
for (int i=1; i<=matcher.groupCount(); i++) 
System.out.println(matcher.group(i));

Z zalozeniem, ze na poczatku i koncu jest spacja, zeby odroznic slowo.

pozdrawiam
johny

rozumiem ze funkcja find() wyszukuje kolejny ciag pasujacy do wzorca ale o co dokladnie chodzi z petla for i groupCount() oraz group()? group() zwraca String ze znalezionym ciagiem ale kiedy moze byc przypadek, ze groupCount() zwroci wiecej niz 1?

Nie zakldalem nowego watku, zeby nie smiecic.

Pozostało 580 znaków

2008-11-03 13:24

Rejestracja: 12 lat temu

Ostatnio: 7 lat temu

0

Moim zdaniem wygodniejszy w użyciu jest ten pakiet:
http://jakarta.apache.org/reg[...]ocs/org/apache/regexp/RE.html


"Jam częścią tej siły, która wiecznie zła pragnąc, wiecznie czyni dobro"
J.W. von Goethe "Faust"

Pozostało 580 znaków

Odpowiedz

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