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

Signaler
Messages postés
292
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
12 mai 2013
-
Messages postés
292
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
12 mai 2013
-
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

12 réponses

Messages postés
292
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
12 mai 2013
1
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
Messages postés
845
Date d'inscription
mardi 25 avril 2006
Statut
Membre
Dernière intervention
1 août 2017
1
Slt.
tu peut faire:
String A="";
String B="";
String MaChaine = "124566";

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

+
Messages postés
845
Date d'inscription
mardi 25 avril 2006
Statut
Membre
Dernière intervention
1 août 2017
1
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. +
Messages postés
845
Date d'inscription
mardi 25 avril 2006
Statut
Membre
Dernière intervention
1 août 2017
1
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. +"
Messages postés
292
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
12 mai 2013
1
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 .
Messages postés
845
Date d'inscription
mardi 25 avril 2006
Statut
Membre
Dernière intervention
1 août 2017
1
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.

+
Messages postés
5348
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
30 mars 2020
95
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
Messages postés
292
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
12 mai 2013
1
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
Messages postés
845
Date d'inscription
mardi 25 avril 2006
Statut
Membre
Dernière intervention
1 août 2017
1
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.
Messages postés
5348
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
30 mars 2020
95
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
Messages postés
292
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
12 mai 2013
1
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);
Messages postés
292
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
12 mai 2013
1
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);