Split une chaine de caractere java

Résolu
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. Modérateur
    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. ma question svp est pourquoi Stringtokenizer ne fonctionne pas dans le cas le délimteur chaine de caracteres
      merci
      0
    2. Modérateur
      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. 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
    1. 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