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 :

Problème pour découper une chaîne de caractères en deux tableaux


Sujet :

Java

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2009
    Messages : 95
    Points : 57
    Points
    57
    Par défaut Problème pour découper une chaîne de caractères en deux tableaux
    salut tout le monde
    J'ai un problème de résolution d'une application en java. Alors mon problème est d'introduire une chaîne de caractère qui contient des numéros, par exemples "tatou vbr 2548 loool" j'aimerais cette chaîne de caractère de le mettre dans deux tableaux l'un qui à les chiffres et l'autre qui à les autres caractères.
    c-a-d "tatou vbr 2548 loool" doit être les chaîne de caractère "tatouvbrloool" et le les chiffre sont "2548".

    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
    52
    53
    54
    55
    56
    public static void main(String[] args) {
    		String ligne_lue=null;
    		int i,j=0,m=0;
     
    		try
    		{
    			System.out.print("Bienvenue entrer une chaine de charactere : ");
    			InputStreamReader lecteur=new InputStreamReader(System.in);
    			BufferedReader entree=new BufferedReader(lecteur);
    			ligne_lue=entree.readLine();	
    		}
     
    		catch (Exception e) {
    			// TODO: handle exception
    			System.exit(0);
    		}
     
    		int k=ligne_lue.length();
    		System.out.println("Votre mot d entrer est :  "+ligne_lue+" le longueur est : "+k);
    char []tab=ligne_lue.toCharArray();
    		char []tab2=new char[20];
    		int []tab3=new int[20];
    		for(i=0;i<k;i++)
    		{			
    			if(!Character.isDigit(tab[i]))
    				{
    				tab2[j]=tab[i];
    				j++;
    			    }
     
    			else if (Character.isDigit(tab[i]))
    			{
    				try {
    					tab3[m]=Integer.parseInt (ligne_lue,tab[i]);
    					m++;	
    				} catch (Exception e) {
    					// TODO: handle exception
    				}
     
    			} 
     
    		}	
    		System.out.println("les entier sont : ");
    		for(int p=0;p<j;p++)
    		{
     
    			if(!Character.isSpaceChar(tab[p]))
    				System.out.print(" "+tab3[p]);				
    		}
    		    System.out.println("\nles caracteres sont : ");
    		for(int p=0;p<m;p++)
    		{			
    			if(!Character.isSpaceChar(tab[p]))
    				System.out.print(" "+tab2[p]);		
    		}
    	}
    L’exécution ça donnent

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Bienvenue entrer une chaine de charactere : tatou 457 mpl
    Votre mot d entrer est :  tatou 457 mpl le longueur est : 13
    les entier sont : 
     0 0 0 0 0 0 0 0
    les caracteres sont :
    le tableau des entiers est vide. Et de même pour le tableau de chaîne de caractère aidez moi s'il vous plais

  2. #2
    Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2009
    Messages : 95
    Points : 57
    Points
    57
    Par défaut Problème résolue
    d'abord
    changer le type de tableau de entier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char []tab3=new char[20];
    ensuite, le code de découpage de chaîne de caractère et élimination des espaces. le code est le suivant

    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
    for(i=0;i<k;i++)
    		{
    			if((java.lang.Character.isDigit(tab[i])))
    			{
    				if((!java.lang.Character.isSpaceChar(tab[i])))
    				{
    				tab3[j]=tab[i];
    				j++;
    				}
    			}
    			if((!java.lang.Character.isDigit(tab[i])))
    			{
    				if((!java.lang.Character.isSpaceChar(tab[i])))
    				{
    				tab2[m]=tab[i];
    				m++;
    				}
    			}
    		}


    et voila l'affichage de la solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Bienvenue entrer une chaine de charactere : 12+50  58-(tatati)/10 35 1986
    Votre mot d entrer est :  12+50  58-(tatati)/10 35 1986 le longueur est : 29
    les chaine des caractere sont: 
    +-(tatati)/
    les entier sont : 
    12505810351986
    et merci

  3. #3
    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
    Félicitations !

    Voici comment j'aurais fait la même chose :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    String chiffres = ligne.replaceAll("\\D", ""); // Enlever tout ce qui n'est pas un chiffre.
    String caracteres = ligne.replaceAll("\\s|\\d", ""); // Enlever chiffres et espaces.
     
    System.out.println("les entier sont : ");
    System.out.println(chiffres);
    System.out.println("\nles caracteres sont : ");
    System.out.println(caracteres);
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2009
    Messages : 95
    Points : 57
    Points
    57
    Par défaut Autre solution :)
    Merci thelvin ça marche est une autre solution pour le découpage de la chaîne et caractère.

    le cour mon frère de "\\s|\\d \\D" est a quoi sert chaque élément de ce cour et merci beaucoup.

  5. #5
    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
    C'est l'usage des regex, aussi appelées expressions régulières, qu'on retrouve dans plein de langages.

    Nous avons un petit cours sur ses mécanismes de base.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Découper une chaîne de caractères
    Par gege2061 dans le forum Langage
    Réponses: 9
    Dernier message: 07/03/2008, 19h59
  2. Découper une chaîne de caractères
    Par The Lord of Nesquik dans le forum C
    Réponses: 5
    Dernier message: 04/02/2007, 00h20
  3. [VBA-E] découper une chaîne de caractère
    Par jagwar dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/07/2006, 14h07
  4. Problème pour exécuter une chaîne de caractères
    Par Pongo dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 02/09/2005, 10h34
  5. Comment découper une chaîne de caractères en VBA
    Par TomPad dans le forum Access
    Réponses: 3
    Dernier message: 23/06/2005, 09h58

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