Split une chaine de caractere java

Résolu
djanahana Messages postés 95 Statut Membre -  
KX Messages postés 19031 Statut Modérateur -
Bonjour,

je veux spliter ou découper ma chaine en {SAMI,ANA,noura},j'ai utilisé ce code ,mais le pb et que il consider 'AN' comme séparateur ausssi ,

String maChaine = "SAMI and  ANA and noura";
java.util.StringTokenizer tokenizer = new java.util.StringTokenizer(maChaine, "and");
while ( tokenizer.hasMoreTokens() ) {
    System.out.println(tokenizer.nextToken());
}


il y a t'il une méthode pour decouper ma chaine de cette facon
merci Bcp

3 réponses

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    Tu parles de split, alors pourquoi tu ne l'utilises pas ?

    String[] tab = maChaine.split("\\s+and\\s+"); // "and" avec au moins un espace avant et après
    
    for (String s : tab)
    	System.out.println(s);
    2
    1. djanahana Messages postés 95 Statut Membre 13
       
      ma question svp est pourquoi Stringtokenizer ne fonctionne pas dans le cas le délimteur chaine de caracteres
      merci
      0
    2. KX Messages postés 19031 Statut Modérateur 3 020
       
      De la manière que tu as fait, ce n'est pas la chaîne de caractères "and" qui délimite les token, mais les caractères 'a', 'n', et 'd', indépendamment les uns des autres.

      Tu peux regarder par exemple avec maChaine = "1a2n3d4an5ad6nd7and8";
      0
  2. djanahana Messages postés 95 Statut Membre 13
     
    merci bcp KX
    enfin j'ai réussi a découper ma chaine

    String str = machaine; 
      String[] temp; 
      
      String delimiter = "and"; 
      /* given string will be split by the argument delimiter provided. */ 
      temp = str.split(delimiter); 
      /* print substrings */ 
      for(int i =0; i < temp.length ; i++) 
        System.out.println(" split function"+temp[i]);


    merci encore une fois
    1
  3. danimo
     
    Salut,

    Ou bien:
    String[] items = maChaine.split(" +and +");  // " +" = au moins 1 espace
              
             int nI = 0;  
             for (String str : items)  
             {  
                System.out.println("item" + nI + " = " + str);  
                nI++;  
             }  
    

    Cordialement,

    Dan

    --Plus on apprend... plus on se rend compte qu'on ne connaît pas grand-chose.
    0