Ich dachte, dieses relativ kluge Problem mit allen hier zu teilen. Ich versuche, unausgeglichene/ungepaarte doppelte Anführungszeichen aus einer Zeichenfolge zu entfernen.Wie man unausgeglichene/nicht gepreiste Anführungszeichen (in Java) entfernt
Meine Arbeit ist im Gange, ich könnte in der Nähe einer Lösung sein. Aber ich habe noch keine funktionierende Lösung bekommen. Ich bin nicht in der Lage, die ungepaarten/unpartered doppelten Anführungszeichen aus der Zeichenfolge zu löschen.
Beispiel Eingabe
string1=injunct! alter ego."
string2=successor "alter ego" single employer" "proceeding "citation assets"
Ausgabe sollte sein
string1=injunct! alter ego.
string2=successor "alter ego" single employer proceeding "citation assets"
Dieses Problem ähnlich klingen zu Using Java remove unbalanced/unpartnered parenthesis
Hier ist mein Code so weit (es funktioniert nicht lösche alle unpair-double-quot es)
private String removeUnattachedDoubleQuotes(String stringWithDoubleQuotes) {
String firstPass = "";
String openingQuotePattern = "\\\"[a-z0-9\\p{Punct}]";
String closingQuotePattern = "[a-z0-9\\p{Punct}]\\\"";
int doubleQuoteLevel = 0;
for (int i = 0; i < stringWithDoubleQuotes.length() - 3; i++) {
String c = stringWithDoubleQuotes.substring(i, i + 2);
if (c.matches(openingQuotePattern)) {
doubleQuoteLevel++;
firstPass += c;
}
else if (c.matches(closingQuotePattern)) {
if (doubleQuoteLevel > 0) {
doubleQuoteLevel--;
firstPass += c;
}
}
else {
firstPass += c;
}
}
String secondPass = "";
doubleQuoteLevel = 0;
for (int i = firstPass.length() - 1; i >= 0; i--) {
String c = stringWithDoubleQuotes.substring(i, i + 2);
if (c.matches(closingQuotePattern)) {
doubleQuoteLevel++;
secondPass = c + secondPass;
}
else if (c.matches(openingQuotePattern)) {
if (doubleQuoteLevel > 0) {
doubleQuoteLevel--;
secondPass = c + secondPass;
}
}
else {
secondPass = c + secondPass;
}
}
String result = secondPass;
return result;
}
Also, was ist Ihre * Frage *? – adarshr
Bitte beachten Sie den fett gedruckten Satz im zweiten Absatz. – Watt
Welche Art von Ausgabe erhalten Sie? – Shaded