Se connecter avec
S'enregistrer | Connectez-vous

Replace Java

Dernière réponse : dans Programmation
Lassé par la pub ? Créez un compte
Expert Programmation

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).
Expert Programmation

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.
Expert Programmation

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.

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 ^^
Expert Programmation

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.

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.
Expert Programmation

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.
Lassé par la pub ? Créez un compte
Tom's guide dans le monde