On a dans un String, des personn

Transcription

On a dans un String, des personn
importjava.util.*;
/**
*Exempled'emploid'unStringTokenizer(java.util.StringTokenizer)
*
*OnadansunString,despersonnesayantchacuneunnometunouplusieursprénoms
*aveclastructuresuivante:
*ŞLenometleprénomsontséparésparun":"
*ŞLorsqu'unepersonneaplusieursprénoms,ceuxŞcisontséparésparun":"
*ŞLespersonnessontséparéesparun";"
*
*Traitementeffectuéparmain():
*1.AfficherleStringstrtelqu'ilest
*2.Afficherlalistedespersonnes,àraisond'uneparligne.
*
*@authorPeterDaehne
*@version1.0
*/
publicclassExIt01{
/*LespersonnessontstockéesdansleStringstrselonleformatannoncé.*/
privatestaticStringstr="Dupont:Jean;Martin:Alexis:Florent:Yann;Bellecour:Julie;Daehne:Peter";
/*Lesséparateurs*/
privatestaticfinalStringSEP_PERSONNES=";";
privatestaticfinalStringSEP_NOM_PREN=":";
publicstaticvoidmain(String[]args){
System.out.println("LeStringqu'ondécoupe:"+str);System.out.println();
/*Extractiondespersonnes:séparateurSEP_PERSONNES(;)etaffichage*/
StringTokenizersT=newStringTokenizer(str,SEP_PERSONNES);
intk=1;
while(sT.hasMoreTokens()){
StringnomPrenPers=sT.nextToken();
System.out.println("Personnen°"+k+":"+nomPrenPers);
k++;
}
}//main
}//ExIt01
importjava.util.*;
/**
*Exempled'emploid'unStringTokenizer(java.util.StringTokenizer)
*
*OnadansunString,despersonnesayantchacuneunnometunprénom
*aveclastructuresuivante:
*ŞLenometleprénomsontséparésparun":"
*ŞLorsqu'unepersonneaplusieursprénoms,ceuxŞcisontséparésparun":"
*ŞLespersonnessontséparéesparun";"
*
*Traitementeffectuéparmain():
*1.AfficherleStringstrtelqu'ilest
*2.Afficherlalistedespersonnes,enindiquantpourchacunesonnometsesprénoms.
*
*@authorPeterDaehne
*@version1.0
*/
publicclassExIt02{
/*LespersonnessontstockéesdansleStringstrselonleformatannoncé.*/
privatestaticStringstr="Dupont:Jean;Martin:Alexis:Florent:Yann;Bellecour:Julie;Daehne:Peter";
/*Lesséparateurs*/
privatestaticfinalStringSEP_PERSONNES=";";
privatestaticfinalStringSEP_NOM_PREN=":";
publicstaticvoidmain(String[]args){
System.out.println("LeStringqu'ondécoupe:"+str);System.out.println();
/*Extractiondespersonnes:séparateurSEP_PERSONNES(;)*/
StringTokenizerstPers=newStringTokenizer(str,SEP_PERSONNES);
intk=1;
while(stPers.hasMoreTokens()){
StringnomPrenPers=stPers.nextToken();
System.out.println("Personnen°"+k+":"+nomPrenPers);
/*Extractiondunometduprénom:séparateurSEP_NOM_PREN(:)etaffichage*/
StringTokenizerstNomPren=newStringTokenizer(nomPrenPers,SEP_NOM_PREN);
while(stNomPren.hasMoreTokens()){
Stringx=stNomPren.nextToken();
System.out.println(""+x);
}
k++;
}
}//main
}//ExIt02
importjava.util.*;
/**
*Exempled'emploid'unStringTokenizer(java.util.StringTokenizer)
*
*OnadansunString,despersonnesayantchacuneunnometunprénom
*aveclastructuresuivante:
*ŞLenometleprénomsontséparésparun":"
*ŞLorsqu'unepersonneaplusieursprénoms,ceuxŞcisontséparésparun":"
*ŞLespersonnessontséparéesparun";"
*
*Traitementeffectuéparmain():
*1.AfficherleStringstrtelqu'ilest
*2.Affichertousles"morceaux"indépendammentdeleurliensémantique.
*
*@authorPeterDaehne
*@version1.0
*/
publicclassExIt03{
/*LespersonnessontstockéesdansleStringstrselonleformatannoncé.*/
privatestaticStringstr="Dupont:Jean;Martin:Alexis:Florent:Yann;Bellecour:Julie;Daehne:Peter";
/*Lesséparateurs*/
privatestaticfinalStringSEP_PERSONNES=";";
privatestaticfinalStringSEP_NOM_PREN=":";
privatestaticfinalStringSEP_LES_DEUX=SEP_PERSONNES+SEP_NOM_PREN;
publicstaticvoidmain(String[]args){
System.out.println("LeStringqu'ondécoupe:"+str);System.out.println();
/*Extractiondes"morceaux":séparateursSEP_LES_DEUX(;:)etaffichage*/
StringTokenizersT=newStringTokenizer(str,SEP_LES_DEUX);
intk=1;
while(sT.hasMoreTokens()){
Stringmorceau=sT.nextToken();
System.out.println("Morceaun°"+k+":"+morceau);
k++;
}
}//main
}//ExIt03
importjava.util.*;
/**
*Exempled'emploid'unStringTokenizer(java.util.StringTokenizer)
*
*OnadansunString,despersonnesayantchacuneunnometunprénom
*aveclastructuresuivante:
*ŞLenometleprénomsontséparésparun":"
*ŞLespersonnessontséparéesparun";"
*ŞTouteslespersonnesontunseulprénom
*
*Traitementeffectuéparmain():
*1.AfficherleStringstrtelqu'ilest
*2.Afficherlalistedespersonnes,enindiquantpourchacunesonnometsonprénom.
*
*@authorPeterDaehne
*@version1.0
*/
publicclassExIt04{
/*LespersonnessontstockéesdansleStringstrselonleformatannoncé.*/
privatestaticStringstr="Dupont:Jean;Martin:Alexis;Bellecour:Julie;Daehne:Peter";
/*Lesséparateurs*/
privatestaticfinalStringSEP_PERSONNES=";";
privatestaticfinalStringSEP_NOM_PREN=":";
publicstaticvoidmain(String[]args){
System.out.println("LeStringqu'ondécoupe:"+str);System.out.println();
/*Extractiondespersonnes:séparateurSEP_PERSONNES(;)*/
StringTokenizerstPers=newStringTokenizer(str,SEP_PERSONNES);
intk=1;
while(stPers.hasMoreTokens()){
System.out.println("Personnen°"+k+":");
StringnomPrenPers=stPers.nextToken();
/*Extractiondunometduprénom:séparateurSEP_NOM_PREN(:)etaffichage*/
StringTokenizerstNomPren=newStringTokenizer(nomPrenPers,SEP_NOM_PREN);
/*Onsait(précondition)quetouteslespersonnesontunseulprénom.
stNomPrenestdoncconstituéd'exactementdeuxmorceaux.
Onn'adoncpasbesoindeledécouperavecuneboucle.*/
Stringnom=stNomPren.nextToken();
Stringprenom=stNomPren.nextToken();
System.out.println("Nom:"+nom);
System.out.println("Prénom:"+prenom);
k++;
}
}//main
}//ExIt04
/**
* Modélisation d'une personne.
* Deux personnes sont égales si elles ont même nom et même prénom
*
* @author Peter DAEHNE
* @version 1.0
*/
public class Personne {
/* Attributs */
private String nom;
private String prenom;
/* Le constructeur */
public Personne (String nom, String prenom) {
this.nom = nom; this.prenom = prenom;
} // Constructeur
public boolean equals (Object obj) {
Personne p = (Personne)obj;
return p.nom.equals(nom) && p.prenom.equals(prenom);
} // equals
public String toString () {return "Nom: " + nom + " " + "Prénom: " + prenom;}
} // Personne
import java.util.*;
/**
* Exemple d'emploi d'un StringTokenizer (java.util.StringTokenizer)
*
* On a dans un String, des personnes ayant chacune un nom et un prénom
* avec la structure suivante:
* ‐ Le nom et le prénom sont séparés par un ":"
* ‐ Les personnes sont séparées par un ";"
* ‐ Toutes les personnes ont un seul prénom
*
* Traitement effectué par main():
* 1. Afficher le String str tel qu'il est
* 2. Créer une liste d'instances de Personne dans une ArrayList.
* 3. Afficher le contenu de l'ArrayList (c'est le toString() de Personne qui fonctionne).
*
* @author Peter Daehne
* @version 1.0
*/
public class ExIt05 {
/* Les personnes sont stockées dans le String str selon le format annoncé. */
private static String str = "Dupont:Jean;Martin:Alexis;Bellecour:Julie;Daehne:Peter";
/* Les séparateurs */
private static final String SEP_PERSONNES = ";";
private static final String SEP_NOM_PREN = ":";
/* L'ArrayList de stockage */
private static ArrayList listePers;
public static void main (String[] args) {
/* Créer l'instance de l'ArrayList */
listePers = new ArrayList();
System.out.println("Le String qu'on découpe: " + str); System.out.println();
/* Extraction des personnes: séparateur SEP_PERSONNES (;) */
StringTokenizer stPers = new StringTokenizer(str, SEP_PERSONNES);
while (stPers.hasMoreTokens()) {
String nomPrenPers = stPers.nextToken();
/* Extraction du nom et du prénom: séparateur SEP_NOM_PREN (:) et affichage */
StringTokenizer stNomPren = new StringTokenizer(nomPrenPers, SEP_NOM_PREN);
/* On sait (précondition) que toutes les personnes ont un seul prénom.
stNomPren est donc constitué d'exactement deux morceaux.
On n'a donc pas besoin de le découper avec une boucle.
On stocke une instance de Personne dans l'ArrayList. */
String nom = stNomPren.nextToken();
String prenom = stNomPren.nextToken();
Personne p = new Personne(nom, prenom);
listePers.add(p);
}
/* Affichage du contenu de l'ArrayList */
System.out.println("Contenu de l'ArrayList:");
for (int k = 0; k < listePers.size(); k++) {
Personne p = (Personne)listePers.get(k);
System.out.println(" " + p); /* C'est le toString() de Personne qui détermine l'affichage */
}
} // main
} // ExIt05