Normalerweise würden Sie die split() Funktion verwendet werden soll, da dies das ist einfachste Möglichkeit, einen String in mehrere Arrays aufzuteilen, wenn der String durch ein Schlüssel-Zeichen getrennt wird.
Das Hauptproblem ist, dass Sie Informationen zwischen zwei Zeichen benötigen. Der einfachste Weg, um dieses Problem zu lösen, würde durch die Zeichenfolge bekommen Fahrt von jeder Instanz von '(' gehen. Dies lässt die Zeichenfolge wie folgt aussehen
String = "1,2,3,4, @) a, s, 3,4,5) 22,324, # $%) 123,3def, f34rf, 4fe) 32) "
Und das ist perfekt, wie Sie durch den char" teilen "können und sich keine Sorgen über die andere Klammer stören mit der Spaltung. Ich schlage vor, die Ersetzung ("", "") zu verwenden, wobei jede Instanz des ersten Parameters durch den zweiten Parameter ersetzt wird (wir können "" verwenden, um sie zu löschen).
Hier ist ein Beispiel-Code, der arbeiten kann:
String a = "(1,2,3,4,@) (a,s,3,4,5) (22,324,#$%) (123,3def,f34rf,4fe) (32)"
a = a.replace("(","");
//a is now equal to 1,2,3,4,@) a,s,3,4,5) 22,324,#$%) 123,3def,f34rf,4fe) 32)
String[] parts = a.split("\\)");
System.out.println(parts[0]); //this will print 1,2,3,4,@
Ich habe es nicht vollständig getestet, so dass Sie mit unerwünschten Leerzeichen am Ende der Saiten können am Ende Sie bekommen müssen zu befreien!
Sie können dann Teile durchlaufen [] und es sollte alle erforderlichen Teile für Sie haben!
Verwenden Sie dieses Muster ['" \\ ((*?) \\) "'] (https://regex101.com/r/dL9yH9/1). Dann enthält "$ 1", was Sie brauchen. – Shafizadeh