Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Formater une chaine de caracteres [ Divers / Général ] (kgadhi)

vendredi 16 juin 2006 à 15:49:18 | Formater une chaine de caracteres

kgadhi

Bonjour tous le monde et merci de votre aide,

J'ai besoin de formater une chaîne de caractères avant de créer un répertoire. Mais j y arrive pas.

Je vous mets le code que j'ai écrit en espérant que vous pourriez m'aider.


// remplacer les lettres avec accents avec les memes lettres sans accents
String chaine1 = "ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ";
  String chaine2 = "AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy";
  
// les caracteres autorisés  
String chaineOK = "azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN0123456789";
  
// La chaine de caracteres à formater  
String mot = "
ÀÁ Azerty @ rty General";
  
  for (int i=0; i<mot.length(); i++) {     
   for(int j=0; j<chaine1.length(); j++) {
    if (mot.charAt(i) == chaine1.charAt(j)) {
          mot.replace(mot.charAt(i), chaine2.charAt(j));
    }
   }
   
   boolean trouve = true;
   for (int j=0; j<chaineOK.length(); j++) {   
    if (mot.charAt(i) == chaineOK.charAt(j))
     trouve = false;     
    
    if (trouve) {
     mot.replace(mot.charAt(i), '_');
    }
   }   
  }
  
  System.out.println(mot);


et merci pour votre aide


lundi 19 juin 2006 à 12:19:17 | Re : Formater une chaine de caracteres

kgadhi

J'ai trouvé la solution :

// remplacer les lettres avec accents avec les memes lettres sans accents
String chaine1 = "ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ";
  String chaine2 = "AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy";
 
// les caracteres autorisés 
String chaineOK = "azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN0123456789";
 
// La chaine de caracteres à formater 
String mot = "ÀÁAzerty@rty  General";
 
  for (int i=0; i<mot.length(); i++) {   
     for(int j=0; j<chaine1.length(); j++) {
        if (mot.charAt(i) == chaine1.charAt(j)) {
          mot.replace(mot.charAt(i), chaine2.charAt(j));
        }
     }
  
     boolean trouve = true;
    for (int j=0; j<chaineOK.length(); j++) {  
       if (mot.charAt(i) == chaineOK.charAt(j))
         trouve = false;    
   
       if (trouve) {
         mot.replace(mot.charAt(i), '_');
       }
     }  
  }
 
  System.out.println(mot);

lundi 19 juin 2006 à 12:21:22 | Re : Formater une chaine de caracteres

kgadhi

J'ai enfin reussi à trouver une solution

Code :
// remplacer les lettres avec accents avec les memes lettres sans accents // les caracteres autorisés String chaineOK = "azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN0123456789"; // La chaine de caracteres à formater String mot = "ÀÁAzerty@rty General"; mot = mot.replaceAll("[ÀÁÂÃÄÅ]", "A"); mot = mot.replace("Ç", "C"); mot = mot.replaceAll("[ÈÉÊË]", "E"); mot = mot.replaceAll("[ÌÍÎÏ]", "I"); mot = mot.replaceAll("[ÒÓÔÕÖ]", "O"); mot = mot.replaceAll("[ÙÚÛÜ]", "U"); mot = mot.replace("Ý", "Y"); mot = mot.replaceAll("[àáâãäå]", "a"); mot = mot.replace("ç", "c"); mot = mot.replaceAll("[èéêë]", "e"); mot = mot.replaceAll("[ìíîï]", "i"); mot = mot.replaceAll("[ðòóôõö]", "o"); mot = mot.replaceAll("[ùúûü]", "u"); mot = mot.replaceAll("[ýÿ]", "y"); for (int i=0; i<mot.length(); i++) { boolean trouve = true; for (int j=0; j<chaineOK.length(); j++) { if (mot.charAt(i) == chaineOK.charAt(j)) trouve = false; } if (trouve) mot = mot.replace(mot.charAt(i), '_'); } System.out.println(mot);



lundi 19 juin 2006 à 12:22:58 | Re : Formater une chaine de caracteres

kgadhi

Réponse acceptée !
Excusez moi pour ces reponses multiples mais je veux mettre ma solution peut etre elle servira à quelqu'un d'autre:

// remplacer les lettres avec accents avec les memes lettres sans accents
// les caracteres autorisés 
String chaineOK = "azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN0123456789";
 
// La chaine de caracteres à formater 
String mot = "ÀÁAzerty@rty  General";
 
mot = mot.replaceAll("[ÀÁÂÃÄÅ]", "A");
mot = mot.replace("Ç", "C");
mot = mot.replaceAll("[ÈÉÊË]", "E");
mot = mot.replaceAll("[ÌÍÎÏ]", "I");
mot = mot.replaceAll("[ÒÓÔÕÖ]", "O");
mot = mot.replaceAll("[ÙÚÛÜ]", "U");
mot = mot.replace("Ý", "Y");
mot = mot.replaceAll("[àáâãäå]", "a");
mot = mot.replace("ç", "c");
mot = mot.replaceAll("[èéêë]", "e");
mot = mot.replaceAll("[ìíîï]", "i");
mot = mot.replaceAll("[ðòóôõö]", "o");
mot = mot.replaceAll("[ùúûü]", "u");
mot = mot.replaceAll("[ýÿ]", "y");

for (int i=0; i<mot.length(); i++) {
   boolean trouve = true;
   for (int j=0; j<chaineOK.length(); j++) {
       if (mot.charAt(i) == chaineOK.charAt(j))
trouve = false;
   }
   if (trouve)
       mot = mot.replace(mot.charAt(i), '_');
}

System.out.println(mot);

lundi 18 mai 2009 à 13:35:43 | Re : Formater une chaine de caracteres

iDude

Bonjour,

Chaque appel de méthode replace, ou replaceAll effectue un parcours de la chaine de caractères.
La complexité est ici en 15 O(n) ; pour plus d'information sur les complexités algorithmiques, se reporter à l'article de wikipédia sur la question.

Voici un algorithme similaire en O(n) : 15 fois plus rapide :


    public static String normalize (String string) {       
        StringBuilder stringBuilder = new StringBuilder(string);
        for (int i = 0 ; i < string.length() ; i++) {
            Character character = equivalent.get(string.charAt(i));
            if (character != null)
                stringBuilder.setCharAt(i, character);
        }
        return stringBuilder.toString();
    }
   
    private static Map<Character, Character> equivalent;

    static {
        equivalent = new HashMap<Character, Character>();
       
        equivalent.put('À', 'A');
        equivalent.put('Á', 'A');
        equivalent.put('Â', 'A');
        equivalent.put('Ã', 'A');
        equivalent.put('Ä', 'A');
        equivalent.put('Å', 'A');
        equivalent.put('Ç', 'C');
        equivalent.put('È', 'E');
        equivalent.put('É', 'E');
        equivalent.put('Ê', 'E');
        equivalent.put('Ë', 'E');
        equivalent.put('Ì', 'I');
        equivalent.put('Í', 'I');
        equivalent.put('Î', 'I');
        equivalent.put('Ï', 'I');
        equivalent.put('Ò', 'O');
        equivalent.put('Ó', 'O');
        equivalent.put('Ô', 'O');
        equivalent.put('Õ', 'O');
        equivalent.put('Ö', 'O');
        equivalent.put('Ù', 'U');
        equivalent.put('Ú', 'U');
        equivalent.put('Û', 'U');
        equivalent.put('Ü', 'U');
        equivalent.put('Ý', 'Y');
        equivalent.put('à', 'a');
        equivalent.put('á', 'a');
        equivalent.put('â', 'a');
        equivalent.put('ã', 'a');
        equivalent.put('ä', 'a');
        equivalent.put('å', 'a');
        equivalent.put('ç', 'c');
        equivalent.put('è', 'e');
        equivalent.put('é', 'e');
        equivalent.put('ê', 'e');
        equivalent.put('ë', 'e');
        equivalent.put('ì', 'i');
        equivalent.put('í', 'i');
        equivalent.put('î', 'i');
        equivalent.put('ï', 'i');
        equivalent.put('ð', 'o');
        equivalent.put('ò', 'o');
        equivalent.put('ó', 'o');
        equivalent.put('ô', 'o');
        equivalent.put('õ', 'o');
        equivalent.put('ö', 'o');
        equivalent.put('ù', 'u');
        equivalent.put('ú', 'u');
        equivalent.put('û', 'u');
        equivalent.put('ü', 'u');
        equivalent.put('ý', 'y');
        equivalent.put('ÿ', 'y');
    }



Cette discussion est classé dans : mot, chaine, formater, caracteres, charat


Répondre à ce message

Sujets en rapport avec ce message

formater une chaine de caracteres [ par chakall ] salutj'ai un entier compris entre 1 et 900 et je veux le transformer en une chaine de " quatre " caracteres avec des zéros devant.ex: 1 devient "0001" padder une chaine de caracteres [ par sebwol ] Bonjour,Je voudrais padder une chaine de caracteres à droite pour forcer la longueur de la chaine.Exemple "Test chaine" devient "Test chaine " couleur de chaine de caractères [ par othland ] slt tlmcomment affecter une couleur à un mot au milieu d'un texte affiché dans un JTextArea????sachant que mon mot est récupéré dans un Stringou bien Traitement de chaine de caracteres... [ par capoueidiablo ] Bonjours a tous,voila je fais des petites appli en java pour me mettre dans le bain de se langage qui devient incontournable, et j'ai comme qui dirait split, mot clef et java [ par jmg02001 ] bonjour , sauriez vous comment (spliter) -> récupérer des bouts de chaine d'une chaine original en définissant un caractère séparateur ou toute méthod bout de chaine de caracteres [ par deubal ] bonjour tout le monde,je suis debutante en info c'est donc surement une question simple, mais bon faut bien debuter...j'ai une chaine de caracteres (s aide [ par amel2006 ] y'a t'il une méthode qui copie à partird'une chaine une sous chaine qui début par un mot et se termine par un autre mot par exemple: <T Ajouter une chaine de caracteres à une liste [ par kgadhi ] Bonjour tous les monde et merci pour votre aide,j'ai dans une fenetre une liste qui est au depart vide et j'aimerais ajouter à cette liste des chaines affichage [ par anthony65 ] Bonjour,Je cherche a mettre au point un petit programme en java qui lira en parametre une chaine de caracteres et qui l'affichera caractere par caract Cryptage simple d'une chaine de caracteres [ par fllacer ] Bonjour,je cherche comment crypter simplement une String en Java et la décrypter.ex : String aCrypter = "password";String crypt = cryptage ("password"


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version


HTC G1

Entre 449€ et 449€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,499 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.