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 :

Manipulation des chaines de caracteres


Sujet :

avec Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Guinée

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2014
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Manipulation des chaines de caracteres
    Bonjour
    je veux écrire un programme qui demande a l'utilisateur d'introduire une chaine de caractères S,teste
    si elle est constituée de chiffres décimaux(0,1,.., 9) et affiche "S est une chaine numérique !" si c'est
    le cas et " S n'est pas une chaine numérique !" sinon.

    voici mon code ,mais il bug j'arrive pas a retrouver le problème..Merci pour votre attention

    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
    import java.util.Scanner;
     
    public class Exo1 
    {
     
    	public static void main(String[] args)
    	{
    		Scanner sc = new Scanner(System.in);
     
    		String str=new String();
     
    		System.out.print("donner une chaine de caractere S ");
    		str=sc.nextLine();
    		int i=0;
    		char c;
    		boolean test=true;
    		while(i<str.length() && test!=true)
    		{
    			System.out.println("boucle "+i);
    			c=str.charAt(i);
    			if(c=='9' || c=='8' || c=='7' || c=='6' || c=='5' || c=='4' || c=='3' || c=='2' || c=='1' || c=='0') continue;
    			else test=false;
    			i++;
    		}
    		if(test==false) System.out.println(" S nest pas une chaine de caractere ");
    		else System.out.println("S est une chaine de caractere");
     
     
    	}
     
    }

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Regarde bien ce que tu fais là. Si le caractère en i est un nombre, tu retourne au while(), mais tu n'a pas changé la valeur de i => tu tourne en rond sur la même valeur, dans une boucle infinie.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while(i<str.length() && test!=true)
    		{
    			System.out.println("boucle "+i);
    			c=str.charAt(i);
    			if(c=='9' || c=='8' || c=='7' || c=='6' || c=='5' || c=='4' || c=='3' || c=='2' || c=='1' || c=='0') continue;

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 23
    Points : 48
    Points
    48
    Par défaut
    Bonjour,
    Vous pouvez résoudre votre problème autrement. Utiliser les expressions réguliers. Une solution possible:

    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
     
    import java.util.Scanner;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
     
     
    public class TestRegexNum {
     
     
    	public static void main(String[] args) {
    		Pattern pattern = Pattern.compile("\\d+");
    		Scanner sc = new Scanner(System.in);
    		String str=new String();
    		System.out.print("donner une chaine de caractere S ");
    		str=sc.nextLine();
    		Matcher matcher = pattern.matcher(str);
    		if(matcher.matches()==false){
    			System.out.println(" S nest pas une chaine de caractere ");
    		}
    		else{
    			System.out.println("S est une chaine de caractere");
    		}
    	}
    }
    Pour plus d'information : Lien 1 contient un article en anglais parlant du Java Regex
    Lien 2 un autre article mais en français

  4. #4
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Tu peux aussi vérifier que le premier caractère de la chaîne n'est ni un - ni un + puis utiliser parseInt pour vérifier qu'il s'agit bien d'un entier.
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Guinée

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2014
    Messages : 6
    Points : 6
    Points
    6
    Par défaut probleme chaine de caractere resolu
    bonjour,
    je vous remercie pour votre aide ,grâce a vous j'ai résolu mon problème.
    en plus pour information suis débutant avec java donc j'ai pas pus comprendre
    la solution proposer .merci !!!!!

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

Discussions similaires

  1. [XL-2002] manipuler des chaines de caracteres en excel vb
    Par domes85 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 27/12/2011, 11h20
  2. Manipulation des chaines de caractere
    Par Darksnakes dans le forum Débuter
    Réponses: 14
    Dernier message: 15/03/2008, 10h31
  3. manipulation des chaines de caractere
    Par elmo93 dans le forum Débuter
    Réponses: 1
    Dernier message: 17/11/2007, 17h53
  4. Manipulation des chaines de caracteres
    Par black-out dans le forum ASP
    Réponses: 3
    Dernier message: 12/08/2007, 15h11
  5. Fonctions de manipulation des chaines et des dates
    Par Fares BELHAOUAS dans le forum Débuter
    Réponses: 3
    Dernier message: 09/11/2002, 22h43

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