java string frage wieder mal :(
d3cod3 09.05.2004 - 17:38 523 5
d3cod3
Legend...
|
wie immer bin i wieder mal zdeppad dass ich was finde...
problemstellung ist folgende:
i muss einen string einlesen der folgende zeichen akzeptiert: ziffern, A, I, E, D, +, -, =
ausschauen darf er so dass immer eine ziffer kleiner gleich 50000 kommt, danach ein A, I, E oder D. danach ein + oder -, dann wieder eine ziffern/buchstabe kombi. (maximal 5 mal). abschließend kommt das = und danach noch ein buchstabe.
also ca. so:
400E+200A-110D=A
kann man das so irgendwie machen:
([123456789][AIED][+-]) das halt maximal 5 mal und dann noch =[AIED]
nur wei0/find ich net wie ich das realisieren kann. hoff jemand versteht was ich meine und kann mir helfen...
|
gerhardtt
Big d00d
|
|
d3cod3
Legend...
|
mit regular expressions hätte ich gedacht dass es so ausschaut: [0-9][AIED]([+-][0-9][AIED]){0,4}=[AIED] allerdings hab i keine ahnung wie ich das ins programm einbau
|
gerhardtt
Big d00d
|
|
d3cod3
Legend...
|
ah, das frag i dann einfach mit matches ab... das war mal wieder zu logisch... thx! die überprüfung funzt jetzt mal mit String test = readWord();
if (test.matches("[0-9]{1,5}[EIAD]([+-][0-9]{1,5}[AEID]){0,4}=[AEID]")){
println("jo");}
else{
println("na");}
Bearbeitet von d3cod3 am 09.05.2004, 18:23
|
d3cod3
Legend...
|
ok, aber ganz hauts net hin... ich hab das jetzt mal in groups eingeteilt damit ichs nachher einfach auslesen kann. schaut mal so aus: die ![:(](/images/smilies/frown.gif) sind : ( String eingabe = readWord();
if (eingabe.matches("([0-9]{1,5})([AIED])([+-=])?(?:([0-9]{1,5})([AIED])([+-=])?)?(?:([0-9]{1,5})([AIED])([+-=])?)?(?:([0-9]{1,5})([AIED])([+-=])?)?(?:([0-9]{1,5})([AIED])([+-=])?)?[AIED]")){
wie kann ich mir da jetzt die gruppen nach der reihe in strings speichern? also ich hätte es immer gern als Ziffer/Buchstabe häppchen und die vorzeichen als gruppe. komm aber net dahinter wie das gehen soll String blabla = eingabe.groups(0); zb mag er nicht...
|