Hat jemand einen ratschlag, wie java beim replaceALL eine geschweifte klammer erkennt ?

Status
Nicht offen für weitere Antworten.

ayoooo

Mitglied
Hallo freunde würde gerne alle kommas in einem test aufheben, das funktioniert ganz gut nur das ich jetzt auch die kommas verliere die in der txt die zeilen trennen, deswegen wollte ich das ganze umschreiben und sagen das alle kommas zwischen geschweiften klammern bestehen bleiben sollen. Nur erkennt java das nicht, bzw wills nicht ausführen so wie ich es gerne hätte.

Java:
 import java.io.*;

   public class converter{
	   
   
   public static void main(String[] args) throws IOException {
	   try {

	        BufferedReader br = new BufferedReader(
	                new FileReader("C:/Users/Sei_Erfolgreich/Desktop/convert.txt"));
	        String zeile;

	        try {
	            File newTextFile = new File("C:/Users/Sei_Erfolgreich/Desktop/convert2.txt");
	            FileWriter fw = new FileWriter(newTextFile);
	            while ((zeile = br.readLine()) != null) {
	                zeile = zeile.replaceAll("\",\"", "\uffff").replaceAll(",", "").replaceAll("\uffff", "\",\"")
	                .replaceAll("\uffff", "},{")
	                .replaceAll("},{", "\uffff");
	                System.out.println(zeile);
	                fw.write(zeile);
	            }


	            fw.close();
	        } catch (IOException e) {
	            e.printStackTrace();
	        }
	    } catch (FileNotFoundException e1) {
	        e1.printStackTrace();
	    }
   
   }
  }


hat jemand einen ratschlag ?


Außerdem erhalte ich diese Fehlermeldung

Exception in thread "main" java.util.regex.PatternSyntaxException: Illegal repetition near index 1
},{
 
Geschweifte Klammern haben in Regex eine spezielle Bedeutung. Wenn du nach dem Zeichen "{" suchen willst, musst du es escapen.
Ersetze "replaceAll("},{", "\uffff");" durch "replaceAll("\\},\\{", "\uffff");"
 
Also das Programm akzeptiert das .replaceAll("\\},\\{", "\uffff"), aber leider verschwinden trotzdem die kommas die zwischen den geschweiften Klammern sind
 
Java:
zeile = zeile.replaceAll("\",\"", "\uffff").replaceAll(",", "")
Damit wird zunächst die Zeichenkette '","' ersetzt, und dann alle übrigen ',', auch die Kommata in '},{'.
 
Wie sollte ich es dann umändern ? das es beide beachtet ?? oder zwei kleine programme schreiben ? Habs auch mal probiert ohne die anderen replaces mit den kommas in den anführungsstrichen, funktioneirt auch nicht.
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.

Zurück
Oben