Séparer une chaine de caractère [Résolu]

Messages postés
292
Date d'inscription
lundi 6 novembre 2006
Dernière intervention
12 mai 2013
- - Dernière réponse : ulysse00
Messages postés
292
Date d'inscription
lundi 6 novembre 2006
Dernière intervention
12 mai 2013
- 22 févr. 2007 à 11:57
bonsoir mes amis 

je cherche une méthode qui peut m'aider a séparer une chaine de caractére en deux chaines de caractéres
par exemple String X="124566"; 
String A,B;
 avec un séparateur 2 alors j'aurais  A=12;B=4566;
merci de bien vouloir m'aider
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
Messages postés
292
Date d'inscription
lundi 6 novembre 2006
Dernière intervention
12 mai 2013
3
Merci
salut j'ai trouvé la solution
List a = new ArrayList();
 
...
 
List c = new ArrayList();
String s = "66121265"
 
char[] chars = x.toCharArray();
StrinBuffer buf = new StringBuffer();
for(int i=0,m=chars.length();i<m;i++){
   buf.append(chars[i]);
   for(int j=0,n=buf.length();j<n;j++){
      if(a.contains(buf.substring(j,buf.length()))){
         c.add(buf.substring(j,buf.length()));
         buf = new StringBuffer();
         j=n;
      }
   }
System.out.println(c);
 


 


merci mes amis de bien vouloir m'aider

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de ulysse00
Messages postés
845
Date d'inscription
mardi 25 avril 2006
Dernière intervention
1 août 2017
0
Merci
Slt.
tu peut faire:
String A="";
String B="";
String MaChaine = "124566";

A=""+MaChaine.substring(0,1);
B=""+MaChaine.substring(2, MaChaine.length());

+
Commenter la réponse de didoux95
Messages postés
845
Date d'inscription
mardi 25 avril 2006
Dernière intervention
1 août 2017
0
Merci
Excuse,
utilise plutot la class StringTokenizer

import java.util.StringTokenizer;
StringTokenizer ST = new StringTokenizer(MaChaine, "2");
String A = "" + ST.nextToken() + "2";
String B = "" + ST.nextToken();

voila. +
Commenter la réponse de didoux95
Messages postés
845
Date d'inscription
mardi 25 avril 2006
Dernière intervention
1 août 2017
0
Merci
Ou alors, si ton separaeur n'est jamais lme meme tu peut (et oui) aussi faire

String Separateur = "2" //Dans ton cas c'est deux
String MaChaine = "124566";
StringTokenizer ST = new StringTokenizer(MaChaine, Separateur);
String A = "" + ST.nextToken() + Separateur;
String B = "" + ST.nextToken();

re "voila. +"
Commenter la réponse de didoux95
Messages postés
292
Date d'inscription
lundi 6 novembre 2006
Dernière intervention
12 mai 2013
0
Merci
merci mes amis mais si j'ai une chaine de caractére ABCDEF avec un séparateur  2  alors j'aurais AB et CDEF  est ce que cette méthode va marcher .
Commenter la réponse de ulysse00
Messages postés
845
Date d'inscription
mardi 25 avril 2006
Dernière intervention
1 août 2017
0
Merci
Slt.
la methode que je t'ai proposé au debut te permet cela (methode substring(int x, int y);). Elle recupere les caracteres de ta chaine qui sont entre x et y.
Ensuite, les autres te permettent de "couper" ta chaine a chaque fois que le caractere "2" est present.
Ici, je croi plutot que tu va devoire te servir de la premier methode.

+
Commenter la réponse de didoux95
Messages postés
5307
Date d'inscription
dimanche 4 mai 2003
Dernière intervention
14 décembre 2018
0
Merci
Salut,

si tu sépare toujours à 2 fais simplement :
String x ="124566"; //idem pour x = "ABCDEF";

String s1 = x.substring(0, 2);
String s2 = x.substring(2);

s1 = 12
s2 = 4566

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Commenter la réponse de Twinuts
Messages postés
292
Date d'inscription
lundi 6 novembre 2006
Dernière intervention
12 mai 2013
0
Merci
si j'utilise une boucle for

for(int i=0;i<5;i++){

String s1 =x.substring(0,i);
String s2 =x.substring(i);

system.out.println(s1,s2);
}

est ce que ça va marché  car je voulais utiliser une boucle
Commenter la réponse de ulysse00
Messages postés
845
Date d'inscription
mardi 25 avril 2006
Dernière intervention
1 août 2017
0
Merci
Slt
Ca va marcher dans tous les cas. seulement ca depend de ce que tu veux faire.
dans ton cas, la boucle va afficher le premier caractere et tous les autres; les deux premiers et ous les autres; etc. jusqu'au cinqieme.
Commenter la réponse de didoux95
Messages postés
5307
Date d'inscription
dimanche 4 mai 2003
Dernière intervention
14 décembre 2018
0
Merci
Salut,

le meilleur moyen de le savoir reste de le tester donc teste le

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Commenter la réponse de Twinuts
Messages postés
292
Date d'inscription
lundi 6 novembre 2006
Dernière intervention
12 mai 2013
0
Merci
je voulais ajouter une boucle car je voulais séparer a chaque fois la chaine de caractére et tester les s1 et s2

amsi j'ai un message d'erreur
est ce que c'est just  de mettre i avec cette façon String s1 =x.substring(0,i);
Commenter la réponse de ulysse00
Messages postés
292
Date d'inscription
lundi 6 novembre 2006
Dernière intervention
12 mai 2013
0
Merci
j'ai une liste A qui contient [12,6,5]  et je voulais séparer les élément de la variable x et les mettre dans une liste C alors le résultat sera c=[6,6,12,12,6,5]  j'ai un probleme avec la boucle while je n'arrive pas a trouver une bonne condition pour arreter le progremme avec while

ArrayList C = new ArrayList();
     String x ="66121265";
    
     String s1 = x.substring(0,1);
     String s2 = x.substring(1);
     int nbr =1;
    
    while(nbr<8){
      switch (1) {


        case (1):
          if (A.contains(s1)) {


            C.add(s1);


          }
          else {
            String a = s2.substring(0, 1);
            s1 = s1.concat(a);
            s2 = s2.substring(1);


          }


        case (2):
          if (A.contains(s2)) {
            C.add(s2);
          }
          else {
            s1 = s2.substring(0, 1);
            s2 = s2.substring(1);


          }


      }
   
  
nbr++;


    }
   
       System.out.println(C);


 
Commenter la réponse de ulysse00

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.