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 espaces dans chaine


Sujet :

Java

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut Supprimer espaces dans chaine
    Bonjour,

    Je développe un programme qui test les chaine pour savoir s'il s'agit de palindrome ou non et là je souhaiterai regrouper ce que je passe en paramètre en un seul mot mais je bloque.
    Par exemple, avant je taper deux mot : elle et iffg : elle est un palindrome et l'autre non
    et là quand je tape el le, sa doit me donner elle

    voici mon programme que j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    if(args.length == 0){
    			System.out.println("Aucun paramètre n'a été passé !");
    		}else{
    			for(int i=0; i<args.length; i++){
     
    				StringBuffer buff = new StringBuffer(args[i]);
    				if(args[i].equals(buff.reverse().toString())){
    					System.out.println(args[i] + " est un palindrome");
    				}else{
    					System.out.println(args[i] + " n'est pas un palindrome");
    				}
    			}
     
    		}
    Je pense que je doit utiliser trim() mais je vois pas ou

    Merci de votre aide

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2007
    Messages
    256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 256
    Points : 290
    Points
    290
    Par défaut
    Bonjour,

    Pour nettoyer une chaîne de caractères des caractères indésirable, vous pouvez utiliser la methode replace.

    Dans votre exemple, juste au dessus de la déclaration du StringBuffer vous pouvez ajouter ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    args[i] = arg[i].replace(" ", "");
    afin de remplacer toutes les occurences du caractère espace par du vide.

    Bonne journée

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut
    Non je peut pas!
    le replace ne fonctionne pas

  4. #4
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2007
    Messages
    256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 256
    Points : 290
    Points
    290
    Par défaut
    Voilà le bout de code complet que j'ai exécuté:

    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
    public class Test {
        public static void main(String[] args) {
            if (args.length == 0) {
                System.out.println("Aucun paramètre n'a été passé !");
            } else {
                for (int i = 0; i < args.length; i++) {
                    args[i] = args[i].replace(" ", "");
                    StringBuilder builder = new StringBuilder(args[i]);
     
                    if (args[i].equals(builder.reverse().toString()))
                        System.out.println(args[i] + " est un palindrome");
                    else
                        System.out.println(args[i] + " n'est pas un palindrome");
                }
            }
        }
    }

  5. #5
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut
    Moi il veut pas du replace

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Eh ben moi si, conformément à ce que dit la JavaDoc à propos de String.replace().

    Peux-tu nous montrer ton code et le message d'erreur au lieu de répéter "ça marche pas" en boucle ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Points : 1 220
    Points
    1 220
    Par défaut
    tu peux initialiser le StringBuilder une seule fois, hors de la boucle, puis à chaque parcours tu rajoutes(en même temps tu supprimes l'espace vide) la chaîne de caractère entrée par l'utilisateur.A la sortie de la boucle, tu pourras alors comparer le StringBuilder construit avec son équilalent inversé:
    Code java : 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
     
    public class Test {
     
     public static void main(String []args){
                  if (args.length == 0) {
                System.out.println("Aucun paramètre n'a été passé !");
                 System.out.println("USAGE : java el el Test");
            } else {
                  StringBuilder builder = new StringBuilder();
                for ( String ch : args ) {
                     builder.append(ch.replace("\\s+", ""));               
                }
     
                 if (builder.toString().equals(builder.reverse().toString()))
                        System.out.println(builder + " est un palindrome");
                    else
                        System.out.println(builder + " n'est pas un palindrome");
     
            }
        }
     
     
    }

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

Discussions similaires

  1. Conversion d'espace dans chaine
    Par Shifty_ dans le forum C#
    Réponses: 8
    Dernier message: 06/03/2007, 14h22
  2. Supprimer espaces dans script terminal
    Par Krispy dans le forum Linux
    Réponses: 2
    Dernier message: 25/08/2006, 15h16
  3. Réponses: 18
    Dernier message: 27/06/2006, 18h37
  4. [sql] Espace dans chaine
    Par Kasanova75 dans le forum Oracle
    Réponses: 6
    Dernier message: 07/03/2006, 14h27
  5. [SQL / ORACLE] Supprimer espace dans une phrase
    Par shaun_the_sheep dans le forum Oracle
    Réponses: 10
    Dernier message: 31/01/2006, 16h29

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