This shows you the differences between two versions of the page.
alf:laboratoare:02_fr_java [2023/03/12 18:42] alexandra.negoita02 [Fonctions supplémentaires] |
alf:laboratoare:02_fr_java [2023/03/14 04:06] (current) alexandra.negoita02 [Assignment] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== TP 2 - Strings et Regex ====== | ====== TP 2 - Strings et Regex ====== | ||
+ | |||
+ | ====== Assignment ====== | ||
+ | <note important> | ||
+ | Vous devez **accepter** l'assignment d'ici est travailler avec ce **repository**: [[https://classroom.github.com/a/NwkWZNIY|Lab 2]] | ||
+ | </note> | ||
===== Strings ===== | ===== Strings ===== | ||
Line 74: | Line 79: | ||
==== Fonctions supplémentaires ==== | ==== Fonctions supplémentaires ==== | ||
- | === String === | + | === Fonctions pour les chaînes de caractères avec Regex === |
* //[[https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split(java.lang.String)|str.split(regex)]]// - divise le string dans un array avec des éléments séparés par le separateur//regex// | * //[[https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split(java.lang.String)|str.split(regex)]]// - divise le string dans un array avec des éléments séparés par le separateur//regex// | ||
* //[[https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#matches(java.lang.String)|str.matches(regex)]]// - Indique si le chaîne de caracteres correspond ou non à l'expression régulière donnée. | * //[[https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#matches(java.lang.String)|str.matches(regex)]]// - Indique si le chaîne de caracteres correspond ou non à l'expression régulière donnée. | ||
Line 84: | Line 89: | ||
Fichiers de groups: | Fichiers de groups: | ||
- | - Téléchargez depuis le github le fichier [[https://github.com/UPB-FILS-ALF/TP/blob/main/TP2/BusinessFinancialData.csv|BusinessFinancialData.csv]] qui contient des données financières d'entreprise. Dans ce document on a stocké le code de l'entreprise, la période de temps, la valeur totale, le sujet, la catégorie et le domaine d'activité (dans cette ordre précisément). Créez un projet nodejs et copiez dans une chaîne seulement la ligne numéro 3. Sans utiliser des expressions régulières, résolvez les demandes suivantes (seulement a l'aide des **fonctions pour les strings**): | + | - Téléchargez depuis le github le fichier [[https://github.com/UPB-FILS-ALF/TP/blob/main/TP2/BusinessFinancialData.csv|BusinessFinancialData.csv]] qui contient des données financières d'entreprise. Dans ce document on a stocké le code de l'entreprise, la période de temps, la valeur totale, le sujet, la catégorie et le domaine d'activité (dans cette ordre précisément). Créez un projet Java et copiez dans une chaîne seulement la ligne numéro 3. Sans utiliser des expressions régulières, résolvez les demandes suivantes (seulement a l'aide des **fonctions pour les strings**): |
- Affichez la position (index) du sujet dans le string. (**0.2p**) | - Affichez la position (index) du sujet dans le string. (**0.2p**) | ||
- Affichez la dernière position de " " (\s) dans la chaîne. (**0.4p**) | - Affichez la dernière position de " " (\s) dans la chaîne. (**0.4p**) | ||
Line 91: | Line 96: | ||
- Divisez la chaîne dans un tableau en utilisant le caractère de nouvelle ligne (\n) comme séparateur (//\r\n// pour Windows). (**0.4p**) | - Divisez la chaîne dans un tableau en utilisant le caractère de nouvelle ligne (\n) comme séparateur (//\r\n// pour Windows). (**0.4p**) | ||
- Traitez chaque string du tableau et affichez sur des lignes différentes le code, la valeur totale et la catégorie de chaque entreprise qui est dans le fichier. (**0.6p**) | - Traitez chaque string du tableau et affichez sur des lignes différentes le code, la valeur totale et la catégorie de chaque entreprise qui est dans le fichier. (**0.6p**) | ||
- | - Pour chaque ligne de l'exercice 2, créez un objet de type Entreprise avec les détails de celle-ci. La méthode reste a votre choix. Ajoutez les objects dans un tableau. (**1p**) | + | - Pour chaque ligne de l'exercice 2, créez une classe Entreprise avec les détails de celle-ci. La méthode de creer les objets reste a votre choix. Ajoutez les objects dans un tableau. (**1p**) |
- | - Téléchargez le fichier [[https://github.com/UPB-FILS-ALF/TP/blob/main/TP2/passwd|passwd]] et lisez-le dans un string. Créez un tableau avec des objets contenant les informations comprises dans le fichier, pour chaque ligne. Vous pouvez trouver des détails sur le format du fichier [[https://github.com/UPB-FILS-ALF/TP/blob/main/TP2/passwd|passwd]] ici. (**1p**) | + | - Téléchargez le fichier [[https://github.com/UPB-FILS-ALF/TP/blob/main/TP2/passwd|passwd]] et lisez-le dans un string. Créez un tableau avec des objets contenant les informations comprises dans le fichier, pour chaque ligne. Vous pouvez trouver des détails sur le format du fichier [[https://www.ibm.com/docs/en/aix/7.2?topic=passwords-using-etcpasswd-file|passwd]] ici. (**1p**) |
- Utilisez des expressions régulières pour résoudre l'exercice 2. Vous pouvez utiliser [[https://regex101.com|RegEx101]] pour écrire l'expression régulière et tester sa validité. (**1p**) | - Utilisez des expressions régulières pour résoudre l'exercice 2. Vous pouvez utiliser [[https://regex101.com|RegEx101]] pour écrire l'expression régulière et tester sa validité. (**1p**) | ||
- Utilisez des expressions régulières pour résoudre l'exercice 3. (**1.5p**) | - Utilisez des expressions régulières pour résoudre l'exercice 3. (**1.5p**) | ||
- Utilisez des expressions régulières pour résoudre l'exercice 4. (**1.5p**) | - Utilisez des expressions régulières pour résoudre l'exercice 4. (**1.5p**) | ||
- | - Lisez le fichier [[https://github.com/UPB-FILS-ALF/TP/blob/main/TP2/typescript_errors.txt|typescript_errors]] et affichez: | + | - **Bonus**: Ecrivez un programme qui reçoit comme paramètre le fichier [[https://github.com/UPB-FILS-ALF/TP/blob/main/TP2/typescript_class.ts|typescript_class.ts]]. Lisez le fichier et résolvez les demandes suivantes: |
- | - combien d'erreurs y a-t-il (**0.5p**) | + | |
- | - le liste de codes d'erreur (**0.5p**) | + | |
- | - Stockez les informations dans un tableau ayant le format suivant: (**0.5p**)<code json> | + | |
- | [ | + | |
- | { | + | |
- | "type":"error", | + | |
- | "code":<erorr_code if it exists>, | + | |
- | "type_error":<true/false>, //s'il s'agit d'une erreur de type | + | |
- | "description":<the error description> | + | |
- | }, | + | |
- | ... | + | |
- | ] | + | |
- | </code> | + | |
- | - Ecrivez le tableau dans un fichier (indice: utilisez JSON.stringify) (**0.5p**) | + | |
- | - **Bonus**: Ecrivez un programme qui reçoit comme paramètre le fichier [[https://github.com/UPB-FILS-ALF/TP/blob/main/TP2/typescript_class.ts|typescript_class.ts]]. Lisez le fichier et résolvez les demandes suivantes: | + | |
- affichez les bibliothèques importées (**0.3p**) | - affichez les bibliothèques importées (**0.3p**) | ||
- affichez toutes les classes déclarées (**0.3p**) | - affichez toutes les classes déclarées (**0.3p**) |