IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Supprimer des réccurences


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 47
    Par défaut Supprimer des réccurences
    Bonjour à vous.

    Je vous expose mon problème.
    Dans mon programme je récupère des informations d'un fichier excel, jusque là tout va bien, mais quelle ne fut ma surprise lorsque je découvris avec effroi que le texte qui apparaissait correctement dans le fichier excel était en fait rédigé avec autant de soin qu'un bébé qui mange sa soupe. Bref je me retrouve avec des retours chariots là où il n'y a pas besoin à la pelle et des espaces en veux tu en voilà, qui sont le résultat de personnes qui ne savent pas rédiger dans un excel.

    En gros dans l'excel j'ai ceci:


    " Bienvenue à vous chers membres de developpez.net
    Vous vous trouvez actuellement sur :
    Le forum
    Section:
    Java "


    Voilà c'est mignon mais quand je récupère le tout en fait c'est ça qui a été écrit :
    "




    Bienvenue à vous chers membres de developpez.net[espace][espace][espace][espace][espace][espace][espace][espace] (oui la zone de texte du forum est bien codée elle supprime les espaces en trop comme je le voudrais)Vous vous trouvez actuellement sur :

    Le forum
    Section:[espace][espace][espace][espace][espace][espace][espace][espace][espace][espace][espace][espace][espace][espace][espace] Java





    "


    Bref vous voyez arriver ma question, ma question c'est comment supprimer les occurences des caractères spéciaux lorsqu'ils sont répétés plusieurs fois?
    Par exemple si je le faisais pour des lettres si j'entre "abbbcdbbaaaaj" en sortie j'obtiens "abcdbaj". Voilà je peux avoir plusieurs fois le même caractère dans une chaîne mais pas à la suite.

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Et ton problème se situe ou ?

    - Parcourir le texte caractère par caractère ?
    - Retenir le dernière caractère avant l'actuel ?
    - Réécrire la chaine sans les répétitions ?
    - Créer un tableau qui va contenir les caractères "speciaux" ?

    Tu as un morceau de code déjà ?
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut
    Tu peux eventuellement utiliser une regex. Mais à mon avis, le plus simple est d'utiliser un stringbuilder et de parcourir le texte en supprimant les doublons de caracteres...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 47
    Par défaut
    Voilà le code qui récupère les informations.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    50
    51
     ArrayList<Mot> mot = new ArrayList<Mot>();
     
            try {
    		      POIFSFileSystem fs = new POIFSFileSystem(Dico3.class.getResourceAsStream("Monfichier.xls"));
    		      HSSFWorkbook wb = new HSSFWorkbook(fs);
    		      HSSFSheet sheet = wb.getSheetAt(0);
    		      Row row = null;
    		      Cell cell = null;
     
    		      for (Iterator<Row> rowIt = sheet.rowIterator(); 
    		        rowIt.hasNext();) {
    		        row = rowIt.next();
    		        if (row.getRowNum()>3){
    		        	 Mot m = new Mot();
    		        for (Iterator<Cell> cellIt = row.cellIterator(); 
    		          cellIt.hasNext();) {
    		          cell = cellIt.next();
     
    		          if(cell.getColumnIndex()==1){		        	  
    		        	  if(cell.getStringCellValue().replaceAll(" ", "").equals("")) break;       
    		        	  if(cell.getHyperlink()!=null){ 
    		        	  	m.setDesignation(cell.getStringCellValue());
    		        	  	m.setLien(cell.getHyperlink().getAddress());
    		        	  }
    		        	  else{
    		        		m.setDesignation(cell.getStringCellValue());
    		        	  }
    		          }
    		          if(cell.getColumnIndex()==2) m.setDefinition(cell.getStringCellValue());
    		          if(cell.getColumnIndex()==3) m.setEnglish(cell.getStringCellValue());
    		          if(cell.getColumnIndex()==4) m.setEnglishdef(cell.getStringCellValue());
    		          if(cell.getColumnIndex()==5) m.setSource(cell.getStringCellValue());
    		          if(cell.getColumnIndex()==6){
    		        	  if(cell.getStringCellValue().isEmpty()) m.setDoublon(false);
    		        	  else m.setDoublon(true);
    		          }
    		          if(cell.getColumnIndex()==7){
    		        	  m.setTheme(cell.getStringCellValue());
    		        	  mot.add(m);
    		          }
     
    		        }
    		        } 
    		      }
     
    		    } catch (FileNotFoundException e) {
    		      e.printStackTrace();
    		    } catch (IOException e) {
    		      e.printStackTrace();
    		    }
            return mot;
    Donc dans ce morceau de code je veux pouvoir rajouter l'appel d'un sous-programme que je fais à côté pour nettoyer les string rentrés dans les variables de ma classe.

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    pour remplacer les espaces multiples: un truc du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chaine = chaine.replaceAll("\\s{2,}"," ");

  6. #6
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Citation Envoyé par lotto90 Voir le message
    Voilà le code qui récupère les informations.
    Ce code la ne nous est pas vraiment utile. On s'en fiche d'ou vient le string a priori... (excell, un fichier texte, une base de donnée, ...)
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 47
    Par défaut
    Non wax je n'ai pas encore de code, donc je ne bloque pas à un endroit particulier, je vous demande votre aide pour déterminer comment aborder le problème et approcher sa solution.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 47
    Par défaut
    J'ai repris ce que Tchize a proposé et j'ai adapté à ma sauce, ça marche bien.
    Merci Beaucoup.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Supprimer des données dans un xml
    Par pingoui dans le forum Format d'échange (XML, JSON...)
    Réponses: 49
    Dernier message: 12/08/2004, 16h49
  2. Réponses: 2
    Dernier message: 07/07/2004, 17h44
  3. HELP!Comment supprimer des enregistrements de tables jointes
    Par ROOTPARIS dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/06/2004, 16h41
  4. Réponses: 14
    Dernier message: 15/01/2004, 01h15
  5. Réponses: 2
    Dernier message: 12/01/2004, 13h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo