java string frage wieder mal :(

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/java_string_frage_wieder_mal_114265/page_1 - zur Vollversion wechseln!


d3cod3 schrieb am 09.05.2004 um 17:38

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 schrieb am 09.05.2004 um 18:00

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


d3cod3 schrieb am 09.05.2004 um 18:03

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 schrieb am 09.05.2004 um 18:08

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


d3cod3 schrieb am 09.05.2004 um 18:16

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");}


d3cod3 schrieb am 09.05.2004 um 19:47

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]")){

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




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025