String einlesen und zerlegen

magic_halli

Erfahrenes Mitglied
Hi,

ich gehe eine Textdatei zeilenweise durch und lese mir eine bestimmte Zeile aus. Diese Zeile sieht z.B. so aus:
/*Parameter:M_Y,M_Z,M_T,F_QZ,F_QY,F_L,R_M,R_E
Jetzt möchte ich diese einzelnen Parameter, die dort in der Zeile stehen extrahieren und z.B. in ein StringArray speichern, damit ich später mir jeden einzelnen Parameter hernehmen kann und etwas damit machen kann.
Ich habe jetzt zwar erstmal die Zeile als String in Java vorliegen, doch weiß ich nicht so recht, wie ich dann die einzelnen Parameter abspeichern kann.
Diese sollen am Ende so vorliegen:
{ "M_Y" , "M_Z" , "M_T" , "F_QZ" , "F_QY" , "F_L" , "R_M" , "R_E" }
Bisher bin ich soweit:
Code:
String line;
String param = "/*Parameter:";

BufferedReader buff = new BufferedReader(new FileReader(path + "relations.txt"));
while ((line = buff.readLine()) != null) {
     if ((line.toLowerCase().startsWith(param.toLowerCase()) == true)){
          //hier die einzelnen Elemente extrahieren und speichern - nur wie
     }
}
Könnt ihr mir einen Tip geben, wie ich das machen könnte?

Danke und Gruß.
 
Du koenntest nach den Trennzeichen hier dein komma suchen und bis dahin mit indexof das suchen und das dann einzeln abspeichern.
 
Vielleicht geht es ja so:
Such erstmal nach der Zeile. Dann Mache mit Regex:
Java:
String text = "*Parameter:M_Y,M_Z,M_T,F_QZ,F_QY,F_L,R_M,R_E"; 
System.out.println(text);
System.out.println(text.replaceAll(",", ", "));

dann sollte die Ausgabe diese sein:
Code:
*Parameter:M_Y, M_Z, M_T, F_QZ, F_QY, F_L, R_M, R_E

und danach kannst du ja mit Tokenizer oder Ähnlichem "Wort für wort" in Variablen speichern
 
Hallo,

also wenn du das hier so als String vorliegen hast
Code:
M_Y,M_Z,M_T,F_QZ,F_QY,F_L,R_M,R_E
könntest du es mit String.split() machen.

Schau mal hier
Java:
public class StringSplitExample {

    /**
     * @param args
     */
    public static void main(String[] args) {
	String params = "M_Y,M_Z,M_T,F_QZ,F_QY,F_L,R_M,R_E";
	
	String[] paramsArray = params.split(",");
	
	for(int i= 0, length = paramsArray.length; i < length; i++) {
	    System.out.println(paramsArray[i]);
	}
    }

}

MFG

zEriX
 
Hey, Spitze! Jetzt gehts endlich,d.h. die Werte werden schön aufgesplittet ins Array geschrieben:
Code:
String line;
String param = "/*Parameter:";
String[] sParam = new String[]{};

BufferedReader buff = new BufferedReader(new FileReader(path + "relations.txt"));
while ((line = buff.readLine()) != null) {
     if ((line.toLowerCase().startsWith(param.toLowerCase()) == true)){
          sParam = (line.split(":")[1]).split(",");
     }
}

for(int i= 0, length = sParam.length; i < length; i++) {
     JOptionPane.showMessageDialog(null, sParam[i]);
}
In sParam stehen nun je nach Index fein säuberlich die Parameter drin! :)

Vielen Dank für die Hilfe.
 
wie ist denn der syntax für eine zeile einlesen bis z.B. ; also nach ; zerlegen?

was mich noch interessieren würde :p
hat er den Therad als erledigt markiert?

(nach 3 jahren, und vor 3 jahren schrieb der vor mir "vergiss nicht... :p")
das finde ich lustig, sry^^
kanns mir nicht verkneifen ;-)
 
Hallo,

also er hat auf erledigt geklickt.

Ich verstehe jetzt nicht ganz was du möchtest.
Die (nicht der) Syntax zum zerlegen eines Strings ist
Code:
String[] split = deinString.split(";");

Das steht aber auch schon in allen Code-Beispielen oben.

Gruß

Sascha
 
Zurück