Decouper une chaine de caractères (String) en java

Publié: 21/04/2011 dans Java
Tags:, , ,

Aujourd’hui, je vais vous livrer un petit bout de code très pratique en java  permettant de découper une chaîne de caractères, en fonction d’un séparateur.

Pour notre exemple, je prendrai une chaîne comprenant des virgules (« , ») .

Découper une chaîne de ce type peut se faire en Java à l’aide de la fonction méthode « split() » de la classe « String « .

Voici le code  (sous Eclipse créer un nouveau projet Java et copier/coller ce code dans le main() puis exécutez en cliquant Run ) :

public class Example {
 public static void main(String args[]) {
  String[] splitArray = null; //tableau de chaînes
  //la chaîne à traiter
  String str = "bonjour, ceci est un bon exemple de découpage d\'un string avec split, génial, no ?";

  // On découpe la chaîne "str" à traiter et on récupère le résultat dans le tableau "splitArray"
  splitArray = str.split(",");

  for(int i = 0; i< splitArray.length;i++){
   // On affiche chaque élément du tableau
   System.out.println("élement n° " + i + "=[" + splitArray[i]+"]");

  }
 }
}

/* Sur la sortie en console, vous obtenez  :

élement n°0=[bonjour]

élément n°1=[ ceci est un bon exemple de découpage d'un string avec split]

élément n°2=[ génial]

élément n°3=[ no ?]
*/
commentaires
  1. Diarisso dit :

    assez cool la programmation

  2. bilel dit :

    concernant l’espace,s’il a été considéré comme un separateur?
    et merci

    • badaoui259 dit :

      oui l’espace peu être considérer comme un séparateur il suffit juste de remplacer la virgule par un espace dans la méthode split.

  3. blanchard dit :

    Bonjour,
    J’ai un problème avec mon programme, j’essaye d’afficher tous les mots d’une phrase donnée qui débutent par une voyelle. Pour cela j’ai donc utilisé la méthode du split du dessus pour découper entre chaque espace et j’ai ensuite comparé chaque première lettre des mots avec un tableau de voyelles mais cela ne fonctionne pas comme prévu.

    Voici mon code :
    public class exo4
    {
    public static void main(String [] arg)
    { String [] tab={« A », »E », »I », »O », »U », »Y »};
    String [] splitEspace=null;
    String mot,phrase;
    boolean a=false;

    System.out.print(« Veuillez saisir un mot : « );
    mot=Lire.S();
    voyelle(mot,tab);

    System.out.print(« Veuillez saisir une phrase : « );
    phrase=Lire.S();
    splitEspace=phrase.split( » « );

    System.out.println(« La liste des mots debutant avec une voyelle est : »);
    for(int i=0; i<splitEspace.length; i++)
    { for(int j=0; j<tab.length; j++)
    {if(splitEspace[i].substring(0,1).equals(tab[j])) a=true;}
    if(a==true) System.out.println(splitEspace[i]);
    }

    }

    public static void voyelle(String m, String t[])
    { boolean b=false;
    for(int i=0; i<t.length; i++)
    {if(m.substring(0,1).equals(t[i])) b=true;}
    if(b==true) System.out.println("Le mot : "+m+", debute par une voyelle");
    else System.out.println("Le mot : "+m+", ne debute pas par une voyelle");
    }
    }

    Merci de bien vouloir m'aider car là je ne vois vraiment pas comment résoudre le problème.

  4. Chihab BOUREZGUI dit :

    Merci beaucoup

Laisser un commentaire