Se connecter / S'enregistrer
Votre question

Replace Java

Tags :
  • string
  • Programmation
Dernière réponse : dans Programmation
24 Avril 2009 12:11:15

Bonjour à tous,

J'ai un petit problème en java (il faut avouer que je débute ^^).

Je voudrais remplacer dans une string les " par des \"

Je fais donc ceci:

  1. referer = _referer.replace("\"", "\\\"");


Mais cela ne marche pas, j'ai essayé ça aussi:

  1. referer = _referer.replaceAll("\"", "\\\"");


Même problème.

Quelqu'un peut il m'aider ?

Merci.

Autres pages sur : replace java

a b L Programmation
24 Avril 2009 19:40:37

Le problème c'est que tu modifies le nombre de caractères, donc la JVM doit tout déplacer derrière. :) 
Tu peux faire ça avec un StringBuffer, en bouclant sur des indexOf et utilisant le replace (celui de StringBuffer).
m
0
l
24 Avril 2009 19:55:49

Ha d'accord, je savais pas du tout :) , merci du renseignement.

Donc techniquement, le replace et replaceAll ne servent que si le nombre de caractère est égale ?
m
0
l
Contenus similaires
a b L Programmation
24 Avril 2009 20:08:05

Dans la doc, le replace c'est pour des chars (donc un caractère avec des quotes simples).
ReplaceAll ça utilise les expressions régulières, alors peut-être en faisant quelques tests.
m
0
l
24 Avril 2009 20:19:12

Tu peux aussi mettre des charSequences pour le replace et pour le replaceAll, ça marche pas.
m
0
l
a b L Programmation
25 Avril 2009 11:40:51

Ah oui, je regardais la doc du 1.4, mais c'est apparu à partir de la 1.5.
Dans leur exemple, il change de taille, donc normalement ça devrait marcher, alors vérifie avec une séquence plus simple, mais surtout vérifie que ce que tu regarde est bien ce que tu pense regarder.
m
0
l
25 Avril 2009 18:42:53

J'ai essayer avec un mot simple pour voir et cela marché bien. Par contre je n'ai pas pigé la subtilité de ta phrase ^^.
m
0
l
a b L Programmation
25 Avril 2009 20:34:28

OK, et ta syntaxe semble correcte.
Je comprends pas. Si tu remplace "a" par "ba" ça fonctionne aussi?
m
0
l
27 Avril 2009 10:17:50

Oui je viens d'essayer ça ce matin et ça marche. Le problème viendrais pas de mes \ ?
m
0
l
27 Avril 2009 21:33:50

Oui absolument sur, je stocke ces éléments dans un fichier et il apparait bien une double quote (vue que la transformation ce fait pas) sans back slash.
m
0
l
a b L Programmation
29 Avril 2009 20:54:55

Alors je ne vois pas le problème.
Ceci dit, moi je regarderais quand même en hexa pour être sûr que tu compares la même chose.
m
0
l
29 Avril 2009 20:57:26

Heu comment je peux faire ça :)  ?
m
0
l
a b L Programmation
29 Avril 2009 21:19:09

Tu convertis un char en byte et tu l'affiches.
m
0
l
29 Avril 2009 21:23:31

Ok merci, je vais peut être dire une connerie mais mes fichiers son codé en utf8 et ce que je reçoit est en iso (viens d'un site codé comme ça), est ce qu'il est possible que ça vienne de la ?

Demain matin, je regarderais cette histoire de byte ^^
m
0
l
a b L Programmation
29 Avril 2009 23:09:09

C'est une bonne question, tu peux essayer avec \uxxxx où xxxx est le code unicode.

Edit: en fait non, puisque le " est dans les caractères ASCII, donc en utf-8 c'est pareil qu'en ascii.
m
0
l
29 Avril 2009 23:14:05

Ok ça marche, je vais regarder avec les bytes. En utf8, il me semble que les caractères sont codés sur 2 octets même ceux venant dascii, je vais me renseigner pour voir ;) 
m
0
l
30 Avril 2009 18:41:05

Bon bon bon, il y avait bien un problème avec l'encodage (d'ailleurs sais tu comment détecter si une chaine reçut est en iso ou utf8 ?).

Sinon même avec le replace ça ne marche pas, j'ai donc utilisé StringBuffer et la c'est niquel.
m
0
l
a b L Programmation
30 Avril 2009 20:22:34

Si tout est sur 2 octets, en fait c'est de l'UCS-2. Pour l'UTF-8, la taille d'un caractère est variable de 1 à 4 octets.
Sinon il n'y a, a priori, pas de méthode simple pour détecter le type d'encodage.
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS