2017-08-29 1 views
-3

sagen, wenn ich folgende Saiten durch das Zeichen geteilt werden soll „“Sie spalten Zeichenfolge nicht, wenn das gewünschte Zeichen in Anführungszeichen in Java ist

Bild sehen strings

Wie Sie sehen können, gibt sind 3 Zeilen, in erster Linie, substring

"HALLIBURTON OIL WELL CEMENTING CO. v. WALKER et al., DOING BUSINESS AS DEPTHOGRAPH CO." 

in Anführungszeichen ist, aber es ist auch ein „“ enthalten, die in den folgenden zwei Zeilen nicht geschieht.

Ich möchte die Teilzeichenfolge in Anführungszeichen, mit anderen Worten, "," in Anführungszeichen sollte von String.split (",") nicht berücksichtigt werden, wie erreiche ich es?

Sehr geschätzt im Voraus!

+1

Schreiben Sie Ihren eigenen CSV-Parser NICHT, verwenden Sie einen der vorhandenen qualitativ hochwertigen, getesteten Open-Source-Parser, wie OpenCSV oder Apache Commons CSV. –

+0

In diesem Fall muss ich nur diesen speziellen Fall behandeln, gibt es eine Möglichkeit, es zu tun? – Crysishy

+0

Sie können nicht wissen, dass das der einzige spezielle Fall ist, den Sie behandeln müssen. Sie werden uns davon überzeugen müssen, dass dies wirklich die einzige Möglichkeit ist, und dann müssen wir uns fragen, was ein System, das nur ein einziges Stück Daten verwaltet, das vorher bekannt ist. –

Antwort

0

So fand ich eine Lösung, tun einfach

str.split(",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)"); 

Nicht sicher, ob es die Anforderung erfüllen, Fragen oder Anregungen?

Verwandte Themen