String ohne Zeichen zerlegen lassen

Irreparabel

Aktives Mitglied
Hey ho,

ich hab' mal wieder eine frage. 😛
Um mein Problem etwas konkreter darstellen zu können, sage ich euch am besten was ich vor habe.
Ich habe vor ein Programm zur molaren Berechnung zu schreiben, also wird in ein Textfeld z.b: die Formel:"C_2H_6" geschrieben und anschließend zerlegt. Wobei die einzelnen Stoffe als Variablen schon eingetragen sind wie "double C=12.01115;". Jetzt meine Frage: Wie kann ich die Formel ohne ein bestimmtes Zeichen zerlegen, sodass er es aufteilt in:"C","_2","H","_6"?
Bisher habe ich das hier:
Java:
public void teilen(){
         String s1 = textfield1.getText();
         String[] tokens = s1.split("");
         for(String s : tokens)
         System.out.println(s);
         }
Wenn ich mit den Teilen anschließend arbeiten möchte brauche ich ein Array, oder?
 
Also könntest aufjedenfall mit nem besonderen Zeichen trennen (z.B. am _), aber da du das nicht willst sehe ich als einzigste Möglichkeit, dass du einfach die Chars abzählst und die dann Splittest.
 
Naja, aber die Formeln/Stoffe sind ja nicht immer gleich lang und gleich aufgebaut, darum ist das mit dem abzählen wohl keine gute Alternative. :/
 
Java:
import java.util.Vector;
.....
	public static void main(String args[]){
	    String s1 = "C_2H_6";
	    String singleTokens[] = s1.split("");
	    Vector<String> tokens =  new Vector<String>(s1.length());
	    for (int i = 0; i < singleTokens.length; i++){
	    	if (singleTokens[i].equals("_") && !singleTokens[i].equals("")){
	    		tokens.add(singleTokens[i] + singleTokens[i+1]);
	    		i++;
	    	}
	    	else if (!singleTokens[i].equals(""))
	    		tokens.add(singleTokens[i]);
	    }
	}

so könnte es gehn. hoff ich habs richtig verstanden xD. kannst natürlich auch ein String[] array nehmen aber mir ist jetzt keine option eingefallen, das array anständig zu initialisieren. Hättest halt für jedes _ ein Element zuviel. Deshalb hab ichs mal mitm Vector gemacht..

grüße
nrg
 
Zuletzt bearbeitet:
Kapitel 54 — Vector-Klasse und Aufzhlungen

es gibt da viele andere Möglichkeiten. War jetzt das erste, was mir eingefallen ist. Jetz beim zweiten Überlegen, wär das mit einem StringBuilder bestimmt leichter gewesen bzw man hätte keinen Vector instanziieren müssen. Ich hab jetzt leider keine Zeit mehr 🙁. Kannst es ja selbst nochmal mit einem StringBuilder probieren.

Grüße
nrg
 

Zurück
Oben