split tut nicht, was es soll

zipflhuber

Mitglied
hi. anbei folgender code. er soll ein textfile lesen und am "=" splitten. macht er auch. weiterhin soll er, wenn der erste teilstring "generic" lautet, diesen "löschen" (mache ich mit nem 2. split, geht auch). das problem ist der 2. subsplit-versuch. dort habe ich einen string wie bspw. test,123. dieser sollte an "\\,", also direkt am komma splitten, macht er aber nicht. er führt nichtmal das system.out.println aus... was mache ich hier falsch?! danke schonmal! 🙂

textfile sieht so aus:
generic test = abc,123
generic test2 = 1234

Java:
import java.io.BufferedReader; 
import java.io.FileReader; 
import java.util.ArrayList; 
import java.util.Collections; 
import java.util.HashMap; 
 
public class HashMapEx { 
 
    public static void main(String[] args) { 
        //HashMap<String, String[]> wordcount = new HashMap<String, String[]>();
 
        try { 
            // Opening file 
              BufferedReader in = new BufferedReader(new FileReader("g:/test.txt"));
            // string buffer for file reading   
            String str;
 
            // reading line by line from file    
            while ((str = in.readLine()) != null) { 
                //split string from metafile at "="
				String[] splitarray = str.split("\\=");
				//test if splitted string starts with "generic"
				if (splitarray[0].startsWith("generic")){
					String[] subsplit1 = splitarray[0].split("\\s+");
					splitarray[0] = subsplit1[1];
				}
				if (splitarray[1].contains("\\,")){
					String[] subsplit2 = splitarray[1].split("\\,");
					//splitarray[1] = subsplit2;
					System.out.println("testttt" + subsplit2[0]);
				}
				System.out.println(splitarray[0] + "    " + splitarray[1]);
			}
         
             
            // Close buffered reader 
            in.close();
        } catch (Exception e) { 
            e.printStackTrace();
            System.exit(1);
        } 
} 
}
 
Hi,
nochmal zusammengefasst:
das programm soll an dem = splitten.
Wenn dann am Anfang generic steht soll das generic entfernt werden.
Der 2. String besteht maximal aus 2 Wörtern mit einem Komma oder können auch hier andere Daten auftreten?
Wäre nett wenn du noch etwas mehr Anwendungsfälle hast, evtl kann man sich ja auch ein passendes Pattern stricken.
Ich lads mir später mal rein wenn ich mehr Zeit habe 😉 erstmal was essen.
Gruß
 
hi, danke schon mal für die antwort! was ein selten dämlicher fehler... bei contains() muss man das komma nicht escapen... das war der einzige fehler. guten hunger! 🙂
 
Hi,
na dann ist ja gut 😉
du könntest aber dein .close() noch in ein finally auslagern, sonst wird bei einer exception der stream nicht geschlossen.
Gruß
 

Zurück
Oben