[JAVA] supprimer les caractères spéciaux dans une chaine

supprimer les caractères spéciaux dans une chaine [JAVA] - Java - Programmation

Marsh Posté le 02-08-2004 à 11:24:58    

Bonjour,  
 
existe-t-il un moyen simple de remplacer un ou plusieurs caractères spécial dans une chaîne par la valeur ASCII approchante ?  
 
(par exemple un "é" par un "e" mais on peut aussi étendre ça aux caractères spéciaux des autres langues).  
 
Merci de votre aide.

Reply

Marsh Posté le 02-08-2004 à 11:24:58   

Reply

Marsh Posté le 06-08-2004 à 14:31:33    

Salut un exemple :
public String transforme_chaine(String chaine_a_transformer)
{
String chaine_valide="";
char[] car = chemin_a_transformer.toCharArray();
  for(int i=0;i<car.length;i++)
  {
    //cas pour é
    if(car[+i]==130)
    {
 chaine_valide=chaine_valide+"e";
    }
    //cas du î
    elseif(car[+i]==140)
    {
         chaine_valide=chaine_valide+"i";
    }
    //Etc....
 
    //cas d'un caractere correct
    else
    {
 String s=String.valueOf(car[+i]);  
 chaine_valide=chemin_valide+s;
    }    
  }
  return chaine_valide;
}

Reply

Marsh Posté le 06-08-2004 à 15:28:36    

Nestor a écrit :

Bonjour,  
 
existe-t-il un moyen simple de remplacer un ou plusieurs caractères spécial dans une chaîne par la valeur ASCII approchante ?  
 
(par exemple un "é" par un "e" mais on peut aussi étendre ça aux caractères spéciaux des autres langues).  
 
Merci de votre aide.


 
Si tu veux être compatible avec toutes les langues t'as du taf.
 
Pour le français ça peut donner ça :
 

Code :
  1. public static String translate(String src)
  2. {
  3.  StringBuffer result = new StringBuffer();
  4.  if(src!=null && src.length()!=0)
  5.  {
  6.   int index = -1;
  7.   char c = (char)0;
  8.   String chars= "àâäéèêëîïôöùûüç";
  9.   String replace= "aaaeeeeiioouuuc";
  10.   for(int i=0; i<src.length(); i++)
  11.   {
  12.    c = src.charAt(i);
  13.    if( (index=chars.indexOf(c))!=-1 )
  14.     result.append(replace.charAt(index));
  15.    else
  16.     result.append(c);
  17.   }
  18.  };
  19.  return result.toString();
  20. }


 
Je passe pas par String.replaceAll() car
 

  • car ça passe par le package de regexp et pas forcément plus rapide

mais je me trompe peut-être !!!

  • C'est compatible tout JDK 1.2+


Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed