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

avec Java Discussion :

supprimer avec split


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 42
    Points : 23
    Points
    23
    Par défaut supprimer avec split
    Bonjour,

    je suis débutant en java et j'aurais souhaité avoir quelques conseils

    Je dois parcourir un fichier et supprimer certains mots.
    Ils se présentent de cette manière:

    TOTO - TATA - TITI - TUTU

    Donc ils peuvent être par 2, 3 ou 4 mais ce présente toujours en majuscule et avec un " - " entre eux

    Ayant lu différents posts je suis tomber sur la méthode "split"


    mais je sais pas si c'est la bonne solution

    Je pense devoir faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ch[] = ch.split("\\-")
    ch="TOTO - TATA - TITI - TUTU"
    ch[0] =TOTO 
    ch[1] =TATA
    ch[2] =TITI
    ch[3] =TUTU
    et après faire des boolean pour les supprimer ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    genre v.contains(char[o])
    Est ce la bonne méthode à mettre dans ma boucle qui va filtrer mon fichier texte?

    merci d'avance

  2. #2
    Membre éclairé Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Points : 672
    Points
    672
    Par défaut
    si tu sais ecrire des regex, tu peux utiliser directement la méthode replaceAll de la classe String
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    replaceAll(String regex, String replacement)
    S'il y a une ou plusieurs partie de ta chaine de caractères qui vérifient l'expression régulière alors on les remplace par "" (Rien )

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 42
    Points : 23
    Points
    23
    Par défaut
    Merci

    Donc en gros, (je maitrise pas trop le regex) je fais un pattern avec mes 4 terme

    ensuite un matcher sur le document txt entier

    et enfin je fais un replaceAll

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    Pattern p = Pattern.compile("TITI - TOTO -TATA -TUTU");
    Matcher m = p.matcher("mon document txt");
    String s = m.replaceAll("");
    Est-ce la bonne méthode ?

  4. #4
    Membre éclairé Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Points : 672
    Points
    672
    Par défaut
    Non, c'est pas la bonne méthode

    Je t'ai fais un petit exemple vite fait (mal fait?)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    String test = "TITI - TOTO - TATA - TUTU";
    System.out.println(test);
    //TITI - TOTO - TATA - TUTU
    
    System.out.println(test.replaceAll("(( \\- )|TOTO|TATA)", "**").replaceAll("(^(\\*\\*)+|(\\*\\*)+$)", "").replaceAll("(\\*\\*)+", " - "));
    //TITI - TUTU
    
    System.out.println(test.replaceAll("(( \\- )|TITI)", "**").replaceAll("(^(\\*\\*)+|(\\*\\*)+$)", "").replaceAll("(\\*\\*)+", " - "));
    //TOTO - TATA - TUTU
    
    System.out.println(test.replaceAll("(( \\- )|TATA)", "**").replaceAll("(^(\\*\\*)+|(\\*\\*)+$)", "").replaceAll("(\\*\\*)+", " - "));
    //TITI - TOTO - TUTU

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 42
    Points : 23
    Points
    23
    Par défaut
    Merci pour ton aide
    mais ça marche pas avec ma boucle je dois vraiment mal m'y prendre...
    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
     
    public static String  readFileMajuscule(String filePath) throws Exception{
     
    		String res = "";
    		BufferedReader bis = new BufferedReader(new FileReader(filePath));
    		String lu = bis.readLine();		
     
    		while(lu!= null){			
     
    		//si ligne majuscule j'affiche sauf si TITI - TOTO -TATA -TUTU			
    			if(lu.equals(lu.toUpperCase())){
    				res =res + lu+"\r\n";				
    			}
    			else{
    				res =res + "";
    			}		
    			lu = bis.readLine();		
    		}	
     
    		bis.close();
     
    		return res;
    Ou dois je mettre ta solution ??

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 25
    Points : 15
    Points
    15
    Par défaut



    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
     
    public static String  readFileMajuscule(String filePath) throws Exception{
    String res = "";
    BufferedReader bis = new BufferedReader(new FileReader(filePath));
    String lu = bis.readLine();
     
    String[] result= new String[]{"TATA", "TITI", "TOTO", "TUTU"};
    		Vector v = new Vector();
    		for(int i=0; i<result.length; i++){
    			v.add(result[i]);
    		}
     
    while(lu!= null){			
     
     
    if(lu.equals(lu.toUpperCase())){
     
    boolean estLigneAEnlever = false;
    String[] s = lu.split("\\-");
    for(int i=0; i<s.length && !estLigneAEnlever; i++){
    	s[i] = s[i].trim();
    	if (v.contains(s[i])){
    	estLigneAEnlever = true;
    }
    }
    if (!estLigneAEnlever) res =res + lu+"\r\n";
    }
    else{
    res =res + "";
    }
    }

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 42
    Points : 23
    Points
    23
    Par défaut
    merci mille fois

    je vais essayer



    ok
    nickel ça marche !!

    merci a vous tous !

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

Discussions similaires

  1. pb avec split...
    Par peuf23 dans le forum Langage
    Réponses: 4
    Dernier message: 27/07/2005, 11h10
  2. [débutant] [JList] supprimer avec transfertHandler
    Par pingoui dans le forum Composants
    Réponses: 13
    Dernier message: 24/11/2004, 10h41
  3. [DEBUTANT] probleme avec split ?
    Par matN59 dans le forum ASP
    Réponses: 6
    Dernier message: 23/10/2004, 15h47
  4. [String] Probleme incomprehensible avec split
    Par scorpiwolf dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 20/07/2004, 21h21
  5. [langage] Problem avec split
    Par Ludo167 dans le forum Langage
    Réponses: 4
    Dernier message: 08/07/2004, 14h42

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