URL: https://www.overclockers.at/coding-stuff/java_string_frage_wieder_mal_114265/page_1 - zur Vollversion wechseln!
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...
also entweder du lernst regular expressions(kann nicht schaden):
http://www.regular-expressions.info/java.html
und löst das ganze elegant oder versuchst das ganze mit string.split() zu teilen und somit kleinere probleme zu haben. als deliminerator =,-,+
weiters wichtig wird sein:
http://java.sun.com/j2se/1.4.2/docs...gTokenizer.html
sind halt nur hinweise
grüsse
laborg
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
http://java.sun.com/j2se/1.4.2/docs...va.lang.String)
und damit wirds klarer:
grüssehttp://java.sun.com/j2se/1.4.2/docs...attern.html#sum
ah, das frag i dann einfach mit matches ab...
das war mal wieder zu logisch...
thx! die überprüfung funzt jetzt mal mit
Code:String test = readWord(); if (test.matches("[0-9]{1,5}[EIAD]([+-][0-9]{1,5}[AEID]){0,4}=[AEID]")){ println("jo");} else{ println("na");}
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 sind : (
Code: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]")){
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025