PDA

View Full Version : Strings in neue Strings zerlegen


Bougaloo
22-05-2002, 21:35
Muss bei meinem Beispiel einen String einlesen

zur weiteren bearbeitung brauch ich aber einzelne teile des Strings

Bsp.: eingabe: 12m+30cm

hab mir jetzt gedacht dass das mit einer while schleife gehen müsste.

solange der wert an der stelle i eine ziffer ist soll er es in einem string speichern
wenn wert ein buchstabe ist soll er einen neuen string machen und es dort rein speichern, usw.

meine Frage ist jetzt: "kann das so funktionieren ?"


Bitte um rasche Hilfe

seawas Bougaloo

Soulmerge
22-05-2002, 22:18
klar, klappt so.

Ich würd dir jetzt zwar den code hinschreiben, doch beschäftige ich mich in letzter Zeit anscheinend so stark mit c++, dass ich kein Wort Java mehr kann :(

major
22-05-2002, 22:23
das muesste aber auch mit dem string tokenizer gehn. oder?
kannst dir ja mal anschauen!

java.lang.Object
|
+--java.util.StringTokenizer

ciao Major

DoomedOne
22-05-2002, 23:21
Du kannst das so machen
glaub das ist ein bsp das nur +, - erwartet


public static int index = 0;

public static void main(String arg[])
{
String s = "+1m+3cm";

String teil = getSubstring(s);

System.out.println(teil);
}

public static String getSubstring(String s)
{
for (int i = index + 1; i < s.length(); i++)
{
if (s.charAt(i) == '+')
return s.substring(index++, i); //Das schneidet das + raus
else if (s.charAt(i) == '-')
return s.substring(index, i); //das sollte beim nächsten mal das - mitliefern
}
return s.substring(index);
}

nachher kannst dann die substrings bearbeiten, zum bsp bis zur maßeinheit parsen und umwandeln usw.
Kann dir natürlich net garantieren das der code 100% stimmt aber ich glaub ungefähr passt das.
Den stringtokenizer kann man glaub ich net verwenden da man sort nie weiß ob er jetzt ein + oder - zum trennen verwendet hat.