Utilisation de remplacer la fonction en Java

Mallick marqué:

Je suis en train d'utiliser la fonction remplacer pour remplacer « ( « »," » et « ") » de la chaîne ci-dessous -

String foo = "('UK', 'IT', 'DE')";

Je suis en train d'utiliser le code ci-dessous pour effectuer cette opération -

(foo.contains("('")?foo.replaceAll("('", ""):foo.replace("'",""))?foo.replaceAll("')",""):foo

mais son défaut comme -

java.util.regex.PatternSyntaxException: Unclosed group near index 2

Est-ce que je manque quelque chose ici?

Konrad Rudolph:

replaceAllprend une expression régulière comme modèle de recherche. Depuis (est un caractère spécial dans les expressions régulières, il faut être échappé: '\\('. De plus, il n'y a pas besoin pour le containstest:

final String bar = foo.replaceAll("\\('", "") …

Enfin, vous pouvez combiner tous vos remplacements dans une expression régulière:

final String bar = foo.replaceAll("\\(?'([^']*)'\\)?", "$1");
// Output: UK, IT, DE

Cela remplacera chaque occurrence d'une seule pièce citée dans votre chaîne avec son contenu sans les guillemets, et il permettra (et défausse) entourant l'ouverture et la fermeture entre parenthèses.

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=296896&siteId=1
conseillé
Classement