La classe String Attention ce nest pas un type de base. Il s'agit d'une classe défini dans lAPI...

24
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s contient la chaîne "aaa" mais String s=new String("aaa"); // identique à la ligne précédente La concaténation – l’opérateur + entre 2 String les concatène : String str1 = "Bonjour ! "; String str2 = null; str2 = "Comment vas-tu ?"; String str3 = str1 + str2; / * Concaténation de chaînes : str3 contient " Bonjour ! Comment vas-tu ?"

Transcript of La classe String Attention ce nest pas un type de base. Il s'agit d'une classe défini dans lAPI...

Page 1: La classe String Attention ce nest pas un type de base. Il s'agit d'une classe défini dans lAPI Java (Dans le package java.lang) String s="aaa"; // s contient.

La classe String

• Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang)String s="aaa"; // s contient la chaîne "aaa" maisString s=new String("aaa"); // identique à la ligne précédente

• La concaténation – l’opérateur + entre 2 String les concatène :

String str1 = "Bonjour ! ";String str2 = null;str2 = "Comment vas-tu ?";String str3 = str1 + str2; / * Concaténation de chaînes : str3 contient " Bonjour ! Comment vas-tu ?"

Page 2: La classe String Attention ce nest pas un type de base. Il s'agit d'une classe défini dans lAPI Java (Dans le package java.lang) String s="aaa"; // s contient.

Différences entre objets et types de base

int x=3,y=3;x == y est vrai

String s1="abc",s2="abc";s1 == s2 est faux...

Mémoire

3

3

0x768

Abc....

0x852

Abc....

Quand on compare 2 variables d’un type de base on compare leur valeur. Quand on compare 2 objet avec les opérateurs on compare leur référence (leur adresse en mémoire). Introduction de la méthode equals() pour les objets : s1.equals(s2) est vrai

Page 3: La classe String Attention ce nest pas un type de base. Il s'agit d'une classe défini dans lAPI Java (Dans le package java.lang) String s="aaa"; // s contient.

Les collections de type List

• Une liste est une collection ordonnée.

• L'utilisateur de celle-ci a un contrôle complet sur les éléments qu'il insère dedans, et il peut y accéder par l'entier de leur index.

Les listes ont toujours comme premier élément 0.

Page 4: La classe String Attention ce nest pas un type de base. Il s'agit d'une classe défini dans lAPI Java (Dans le package java.lang) String s="aaa"; // s contient.

Les listes chaînées : LinkedList

Une liste chaînée est une liste dont chaque élément est relié au suivant par une référence à ce dernier.

Page 5: La classe String Attention ce nest pas un type de base. Il s'agit d'une classe défini dans lAPI Java (Dans le package java.lang) String s="aaa"; // s contient.

ArrayList

• Un ArrayList est un tableau qui se redimensionne automatiquement.

Page 6: La classe String Attention ce nest pas un type de base. Il s'agit d'une classe défini dans lAPI Java (Dans le package java.lang) String s="aaa"; // s contient.

La classe String

• Longueur d’un objet String :

– méthode int length() : renvoie la longueur de la chaîne • String str1 = "bonjour";

• int n = str1.length(); // n vaut 7

• Sous-chaînes

– méthode String substring(int debut, int fin)– extraction de la sous-chaine depuis la position debut jusqu’à la

position fin non-comprise.• String str2 = str1.substring(0,3); // str2 contient la valeur "bon"

– le premier caractère d’une chaîne occupe la position 0– le deuxième paramètre de substring indique la position du

premier caractère que l ’on ne souhaite pas copier

Page 7: La classe String Attention ce nest pas un type de base. Il s'agit d'une classe défini dans lAPI Java (Dans le package java.lang) String s="aaa"; // s contient.

La classe String

• Récupération d’un caractère dans une chaîne– méthode char charAt(int pos) : renvoie le caractère situé à la position

pos dans la chaîne de caractère à laquelle on envoie se message String str1 = "bonjour";char unJ = str1.charAt(3); // unJ contient le caractère 'j'

• Modification des objets String– Les String sont inaltérables en Java : on ne peut modifier

individuellement les caractères d’une chaîne.– Par contre il est possible de modifier le contenu de la variable contenant

la chaîne (la variable ne référence plus la même chaîne). str1 = str1.substring(0,3) + " soir"; /* str1 contient maintenant la chaîne

"bonsoir" */

Page 8: La classe String Attention ce nest pas un type de base. Il s'agit d'une classe défini dans lAPI Java (Dans le package java.lang) String s="aaa"; // s contient.

La classe String

• Modification des objets String– Les String sont inaltérables en Java : on ne peut

modifier individuellement les caractères d’une chaîne.

– Par contre il est possible de modifier le contenu de la variable contenant la chaîne (la variable ne référence plus la même chaîne). str1 = str1.substring(0,3) + " soir"; /* str1

contient maintenant la chaîne "bonsoir" */– Quand on a besoin de manipuler directement les

chaînes de caractères il existe la classe StringBuffer.

Page 9: La classe String Attention ce nest pas un type de base. Il s'agit d'une classe défini dans lAPI Java (Dans le package java.lang) String s="aaa"; // s contient.

La classe String

• Les chaînes de caractères sont des objets : – pour tester si 2 chaînes sont égales il faut utiliser la méthode boolean

equals(String str) et non ==– pour tester si 2 chaînes sont égales à la casse près il faut utiliser la

méthode boolean equalsIgnoreCase(String str)String str1 = "BonJour";String str2 = "bonjour"; String str3 =   "bonjour";boolean a, b, c, d;a = str1.equals("BonJour"); //a contient la valeur trueb = (str2 == str3); //b contient la valeur falsec = str1.equalsIgnoreCase(str2);//c contient la valeur true d = "bonjour".equals(str2); //d contient la valeur true

Page 10: La classe String Attention ce nest pas un type de base. Il s'agit d'une classe défini dans lAPI Java (Dans le package java.lang) String s="aaa"; // s contient.

La classe String

• Quelques autres méthodes utiles– boolean startsWith(String str) : pour tester si une

chaine de caractère commence par la chaine de caractère str

– boolean endsWith(String str) : pour tester si une chaîne de caractère se termine par la chaine de caractère str

String str1 =   "bonjour ";

boolean a = str1.startsWith("bon");//a vaut true

boolean b = str1.endsWith("jour");//b vaut true

Page 11: La classe String Attention ce nest pas un type de base. Il s'agit d'une classe défini dans lAPI Java (Dans le package java.lang) String s="aaa"; // s contient.

La classe String

Plus d’informationsdans les documentations de l’API dans lepackagejava.lang

Page 12: La classe String Attention ce nest pas un type de base. Il s'agit d'une classe défini dans lAPI Java (Dans le package java.lang) String s="aaa"; // s contient.

La classe Math

• Les fonctions mathématiques les plus connues sont regroupées dans la classe Math qui appartient au package java.lang– les fonctions trigonométriques– les fonctions d’arrondi, de valeur absolue, ... – la racine carrée, la puissance, l’exponentiel, le

logarithme, etc.• Ce sont des méthodes de classe (static)

double calcul = Math.sqrt (Math.pow(5,2) + Math.pow(7,2)); double sqrt(double x) : racine carrée de xdouble pow(double x, double y) : x puissance y

Page 13: La classe String Attention ce nest pas un type de base. Il s'agit d'une classe défini dans lAPI Java (Dans le package java.lang) String s="aaa"; // s contient.

Les méthodes en java

• Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis.

• Une méthode pour être utilisée doit être déclarée en

lui associant une signature : Un type d’accès à cette méthode(private; protected, rien, ou

public). Un type de retour(int, float, boolean,…ou void si la méthode ne

renvoie rien) Un identificateur( le nom de la méthode) Des paramètres en entrée

public int somme (int param1, int param2) {…}

Page 14: La classe String Attention ce nest pas un type de base. Il s'agit d'une classe défini dans lAPI Java (Dans le package java.lang) String s="aaa"; // s contient.

Méthodes avec valeur de retour et avec paramètres.

public int somme (int param1, int param2) {

int resultat = 0;

resultat = param1 + param2;

return resultat;

}

Page 15: La classe String Attention ce nest pas un type de base. Il s'agit d'une classe défini dans lAPI Java (Dans le package java.lang) String s="aaa"; // s contient.

Méthodes avec valeur de retour et avec paramètres.

public class MaClass {

//Déclaration de la méthode sommepublic int somme (int param1, int param2) {

int resultat = 0;

resultat = param1 + param2;

return resultat;

}

public static void main(String args[]) {

// Utilisation de la méthode sommeint monResultat = somme(3,5);

System.out.println(monResultat);

}

}

Page 16: La classe String Attention ce nest pas un type de base. Il s'agit d'une classe défini dans lAPI Java (Dans le package java.lang) String s="aaa"; // s contient.

Méthodes sans valeur de retour et avec paramètres.

public void somme (int param1, int param2) {

int resultat = 0;

resultat = param1 + param2;

System.out.println(‘‘la somme des deux entiers est ’’ + resultat);

}

Page 17: La classe String Attention ce nest pas un type de base. Il s'agit d'une classe défini dans lAPI Java (Dans le package java.lang) String s="aaa"; // s contient.

Méthodes sans valeur de retour et avec paramètres.

public class MaClass {

//Déclaration de la méthode sommepublic void somme (int param1, int param2) {

int resultat = 0;

resultat = param1 + param2;

System.out.println(‘‘la somme des deux entiers est ’’ + resultat);

}

public static void main(String args[]) {

// Utilisation de la méthode sommesomme(3,5);

}

}

Page 18: La classe String Attention ce nest pas un type de base. Il s'agit d'une classe défini dans lAPI Java (Dans le package java.lang) String s="aaa"; // s contient.

Méthodes sans valeur de retour et sans paramètres.

public void somme () {

int param1 = 2;int param2 = 6;

int resultat = 0;

resultat = param1 + param2;

System.out.println(‘‘la somme des deux entiers est ’’ + resultat);

}

Page 19: La classe String Attention ce nest pas un type de base. Il s'agit d'une classe défini dans lAPI Java (Dans le package java.lang) String s="aaa"; // s contient.

Méthodes sans valeur de retour et sans paramètres.

public class MaClass {

//Déclaration de la méthode sommepublic void somme () {

int param1 = 2; int param 2 =6;

int resultat = 0;

resultat = param1 + param2;

System.out.println(‘‘la somme des deux entiers est ’’ + resultat);

}

public static void main(String args[]) {

// Utilisation de la méthode sommesomme();

}

}

Page 20: La classe String Attention ce nest pas un type de base. Il s'agit d'une classe défini dans lAPI Java (Dans le package java.lang) String s="aaa"; // s contient.

Variables globales et variables locales

public class MaClass {

//Déclaration de la méthode sommepublic void afficher () {

//variable localeint variable = 2;

System.out.println(variable);

}

public static void main(String args[]) {

// variable globaleint variable = 5;afficher();

}

}

Page 21: La classe String Attention ce nest pas un type de base. Il s'agit d'une classe défini dans lAPI Java (Dans le package java.lang) String s="aaa"; // s contient.

La gestion des erreurs en java

• Les exceptions représentent le mécanisme de gestion des erreurs intégré au langage Java, Il se compose d'objets représentant les erreurs et d'un ensemble de trois mots clés qui permettent de détecter et de traiter ces erreurs ( try, catch et finally ) et de les lever ou les propager

(throw et throws).

Page 22: La classe String Attention ce nest pas un type de base. Il s'agit d'une classe défini dans lAPI Java (Dans le package java.lang) String s="aaa"; // s contient.

La gestion des erreurs en java

public class TestException {

  public static void main(java.lang.String[] args) {

     int i = 3;

     int j = 0;

      System.out.println("résultat = " + (i / j));

   }

• }

Page 23: La classe String Attention ce nest pas un type de base. Il s'agit d'une classe défini dans lAPI Java (Dans le package java.lang) String s="aaa"; // s contient.

La gestion des erreurs en java

C:>java TestException

Exception in thread "main" java.lang.ArithmeticException: /

by zero at tests.TestException.main(TestException.java:23)

Page 24: La classe String Attention ce nest pas un type de base. Il s'agit d'une classe défini dans lAPI Java (Dans le package java.lang) String s="aaa"; // s contient.

La gestion des erreurs en java

public class TestException {    public static void main(java.lang.String[] args) {        // Insert code to start the application here.        int i = 3;        int j = 0;        try {            System.out.println("résultat = " + (i / j));        }        catch (ArithmeticException e) {        }

catch (Exception e) {        }    }}