ReplaceAll, caractères spéciaux
Bonjour,
J'ai un petit problème, suite à un passage de Json en string, je me suis rendu compte qu'il transformait les caractères & en unicode et bien sûr ça m'emmerde. Donc je voulais remplacer tous les caractères unicodes par leur équivalent lisible pour le commun du peuple ;).
Donc j'utilise la méthode replaceAll comme ce qui suit :
Code:
res = res.replaceAll("\u003c", "<");
Malheureusement, rien ne se produit, snif...
Une âme charitable?
Solution trouvée:
Après une petite recherche, il ne faut pas utiliser replaceAll mais replace qui n'utilise pas d'expression régulière et donc qui ne bloque pas les caractères spéciaux. On doit réécrire le code comme ce qui suit en n'oubliant pas le \ supplémentaire :ccool: :
Code:
res = res.replace("\\u003c", "<");
Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed character class near index 7 [labe
Bonjour à tous,
En essayant de remplacer avec remplaceAll de ma ligne lue, un message d'erreur survient :
Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed character class near index 7
[label="
J'ai essayé la méthode (postée par adiGuba) des expressions régulières et j'obtiens toujours la même erreur 8O Je croyais que c’était à cause d'un slash \ ou du crochet [ ou des guillemets "
voila mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
public void getLabel(String filename) throws IOException{
InputStream ips = new FileInputStream(filename); // mon fichier texte pour tester
InputStreamReader ipsr = new InputStreamReader(ips);
BufferedReader br = new BufferedReader(ipsr);
String ligne;
String text = "";
String chaine;
String[] var ={"N","[label=\"","\" ]"}; // Substring à supprimer
StringBuffer newText = new StringBuffer();
String ligneDec;
try {
while ((ligne = br.readLine()) != null) {
chaine ="";
System.out.println(ligne); // peut etre supprimé
ligneDec =decode(ligne);
for(int i =0; i <var.length;i++){
chaine =ligneDec.replaceAll(var[i], "");
}
text += ligne + "\n";
newText.append(chaine+ "\n");
}
}
System.out.println(text);
System.out.println("******************************");
System.out.print(newText.toString());
} catch (NumberFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
br.close();
} |
Je vous remercie d'avance pour votre aide,
A+