Utilisation d objets: la classe String

Documents pareils
Utilisation d objets : String et ArrayList

Premiers Pas en Programmation Objet : les Classes et les Objets

Java Licence Professionnelle CISII,

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

Flux de données Lecture/Ecriture Fichiers

Les chaînes de caractères

TD/TP PAC - Programmation n 3

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Chapitre 10. Les interfaces Comparable et Comparator 1

Programmer en JAVA. par Tama

Corrigé des exercices sur les références

TD3: tableaux avancées, première classe et chaînes

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

TP, première séquence d exercices.

Corrigés des premiers exercices sur les classes

TP1 : Initiation à Java et Eclipse

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

1. Langage de programmation Java

Gestion distribuée (par sockets) de banque en Java

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Programme Compte bancaire (code)

Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5

Tp 1 correction. Structures de données (IF2)

Une introduction à Java

PROJET ALGORITHMIQUE ET PROGRAMMATION II

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

INF 321 : mémento de la syntaxe de Java

Langage Java. Classe de première SI

TD/TP PAC - Programmation n 3

Cours 1: Java et les objets

Exercices sur les interfaces

Généralités sur le Langage Java et éléments syntaxiques.

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

SNT4U16 - Initiation à la programmation TD - Dynamique de POP III - Fichiers sources

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Cours d initiation à la programmation en C++ Johann Cuenin

as Architecture des Systèmes d Information

Auto-évaluation Programmation en Java

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

ACTIVITÉ DE PROGRAMMATION

Chapitre VI- La validation de la composition.

Java c est quoi? Java pourquoi?

OCL - Object Constraint Language

Package Java.util Classe générique

Apprendre Java en 154 minutes

Solutions du chapitre 4

Présentation du langage et premières fonctions

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

PROGRAMMATION PAR OBJETS

Travaux Dirigés n 1 : chaînes de caractères

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Plan du cours. Historique du langage Nouveautés de Java 7

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Classe Interne, Anonyme & Enumération

Chapitre 2. Classes et objets

Environnements de développement (intégrés)

Java DataBaseConnectivity

INITIATION AU LANGAGE JAVA

Héritage presque multiple en Java (1/2)

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

Algorithmique et Programmation, IMA

JAVA TD0. Prise en main du langage Environnement de base JAVA 1

Les structures de données. Rajae El Ouazzani

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

Conventions d écriture et outils de mise au point

Projet de programmation (IK3) : TP n 1 Correction

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr

Programmation Orientée Objet application au langage Java Version Novembre 2007

Programmation avec des objets : Cours 7. Menu du jour

Programmation Objet I

Un ordonnanceur stupide

Prendre le marteau, le tableau, le mètre, le crayon, la ficelle, le clou, la pointe ;

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

1 Définition d une classe en Java


TP 1. Prise en main du langage Python

Programmation par les Objets en Java

Dis papa, c est quoi un bus logiciel réparti?

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Initiation à la programmation en Python

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Synchro et Threads Java TM

Traduction des Langages : Le Compilateur Micro Java

Serveur d'archivage 2007 Installation et utilisation de la BD exist

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

Introduction au langage Java

Cours No 3 : Identificateurs, Fonctions, Premières Structures de contrôle.

Chapitre V. Les classes : Object, Vector, etc.

Langage à objets : JAVA (1)

Utilitaires méconnus de StrataFrame

Transcription:

Utilisation d objets: la classe String Maria Virginia Aponte CNAM-Paris Année 2012/2013 Maria Virginia Aponte (CNAM-Paris) NFA031 Année 2012/2013 1 / 23

Les objets en Java déclarés à partir d un nom de classe (ou d interface). Ex: String est un nom de classe; String s; crées (souvent) avec new + le nom de la classe; Compte c = new Compte(); on dit de l objet c : qu il est une instance de la classe Compte, et aussi, que son type est Compte on peut appliquer des méthodes de la classe sur un objet Maria Virginia Aponte (CNAM-Paris) NFA031 Année 2012/2013 2 / 23

Appliquer des méthodes sur un objet Les objets contiennent (en général) des méthodes non statiques: définies dans la classe (type) de l objet; applicables sur l objet, avec une syntaxe particulière: MaClasse c = new MaClasse(); // La classe MaClasse contient la méthode non statique c.m(...); la syntaxe suivante n est pas admise (si m est non statique): MaClasse c = new MaClasse(); // La classe MaClasse contient la méthode non statique m(c); Maria Virginia Aponte (CNAM-Paris) NFA031 Année 2012/2013 3 / 23

Le type String modélise les suite de caractères syntaxe: caractères entourées entre guillements doubles, constantes: "Bonjour", "189GH7?" représentés avec pointeurs (comme tout objet et aussi comme les tableaux). caractères accessibles par position à partir de 0 (comme les tableaux). Maria Virginia Aponte (CNAM-Paris) NFA031 Année 2012/2013 4 / 23

Différences avec les tableaux chaîne tableau caractères! syntaxe dédiée pour les constantes: "Abc" { A, b, c l accès par position se fait via une méthode: s.charat(0) tc[0] char [] tc = { a, b, c ; String s= "Abc"; char c = s.charat(0); char c1 = tc[0]; les caractères d une chaîne ne sont pas modifiables, la longueur d un tableau est un attribut: t.length la longueur d une chaîne s obtient via une méthode (sans paramètres): s.length() Maria Virginia Aponte (CNAM-Paris) NFA031 Année 2012/2013 5 / 23

Déclaration et création des Strings avec constantes: "Bonjour", "189GH7?" avec new. Par exemple: char [] tc = { a, b, c ; String s = new String(t); String s2 = new String(new char []{ a, b, c ); en résultat d une concaténation et/ou conversion: String s = "" + 35 + a ; en résultat d une méthode qui renvoie un String; String s = tc.tostring(); String s2 = s.touppercase(); Maria Virginia Aponte (CNAM-Paris) NFA031 Année 2012/2013 6 / 23

Variables et initialisation String est un type référence: référence = pointeur; une variable de type référence déclarée et non initialisée contient l adresse null: String s; // s contient null s.length(); // provoque une erreur si une variable contient null: l objet référencé par la variable n existe pas; impossible d invoquer des méthodes sur cette variable; invocation sur null erreur exécution Maria Virginia Aponte (CNAM-Paris) NFA031 Année 2012/2013 7 / 23

Affectation entre variables référence Possible à condition que les types de ces variables soient compatibles. Ex: entre deux tableaux de int, entre deux Strings, etc. Quelle est le résultat d une telle affectation? String s1, s2, s3; s1 = "ab"; s2 = "cdef"; s1 = s2; On copie le contenu d une variable dans l autre. Ce contenu est une adresse. Maria Virginia Aponte (CNAM-Paris) NFA031 Année 2012/2013 8 / 23

Affectation entre variables String String s1, s2, s3; s1 = "ab"; s2 = "cdef"; s1 = s2; t1 856 856 a b t2 1024 1024 c d e f On recopie le contenu d une variable dans l autre. On recopie une adresse. s1 et s2 contiennent la même adresse. Maria Virginia Aponte (CNAM-Paris) NFA031 Année 2012/2013 9 / 23

Affectation entre variables String String s1, s2, s3; s1 = "ab"; s2 = "cdef"; s1 = s2; s1: "ab" s1: "ab" s2: s3: null "cde" s2: s3: null "cde" Avant affectation Après affectation Maria Virginia Aponte (CNAM-Paris) NFA031 Année 2012/2013 10 / 23

Comparer tableaux, Strings Strings et tableaux sont des types référence (pointeurs); s1 == s2 compare leurs adresses pointent-ils vers le même emplacement mémoire? pas la bonne méthode si l on veut comparer leur contenu, c.a.d, si leurs valeurs internes sont identiques. utiliser ou écrire des méthodes qui comparent une à une chacune des composantes internes. Maria Virginia Aponte (CNAM-Paris) NFA031 Année 2012/2013 11 / 23

Méthodes de la classe String s.length() renvoie la longueur de la chaîne s; s.charat(n) renvoie le Nth caractère de la chaîne s. s.tochararray() renvoi un tableau de char contenant tous les caractères de la chaîne s. String s = "Salut"; char [] tc = s.tochararray(); // tc = { S, a, l, u, t s1.equals(s2) renvoie true si s1 contient la même suite de caractères que s2. Permet de comparer deux chaînes par égalité de leur contenus et non de leurs adresses. s1.equalsignorecase(s2) comme la méthode précendente mais en ignorant la différence entre majuscules et minuscules. Maria Virginia Aponte (CNAM-Paris) NFA031 Année 2012/2013 12 / 23

Méthodes de String (2) s.substring(n,m) renvoie la sous-chaîne de s allant de positions N, N+1,..., jusqu à M-1 compris. s1.indexof(s2) renvoie un entier. Si s2 est une sous-chaîne de s1, la valeur retournée est la position de son premier cacatère dans s1. Sinon, retourne -1. Peut-être employé avec un caractère ch: s1.indexof(ch), s1.compareto(s2) compare s1 et s2 et renvoie un entier. S ils sont égaux, renvoie 0, si s1 < s2, renvoie une valeur négative, si s1 > s2, renvoie une valeur positive. L ordre considéré est l ordre alphabétique. Maria Virginia Aponte (CNAM-Paris) NFA031 Année 2012/2013 13 / 23

Méthodes de String (3) s.touppercase() renvoie une nouvelle chaîne égale à s, où toutes les minuscules sont changées en majuscules. s.tolowercase() comme avant mais pour le changement de majuscules en minuscules. s.trim() renvoie une nouvelle chaîne égale à s1, où tous les caractères blancs ou tabulations ont été supprimmés du début et de la fin de s. s.split(string sp) découpe la chaîne en plusieurs morceaux en utilisant la chaîne sp comme séparateur. Ex: String s = " un **deux**trois "; String [] res = s.split("**"); // res = {" un ", "deux", "trois " Maria Virginia Aponte (CNAM-Paris) NFA031 Année 2012/2013 14 / 23

Exemples public static void main(string [] args){ String s = "Il rencontre un chien et un chat"; int k; String t; for (int i = 0; i <s.length(); i++){ Terminal.ecrireStringln(i + " --> " + s.charat(i) ); 0 --> I 1 --> l 2 --> 3 --> r 4 --> e 5 --> n 6 --> c 7 --> o... Maria Virginia Aponte (CNAM-Paris) NFA031 Année 2012/2013 15 / 23

Exemples Terminal.ecrireString("la sous chaine entre 7 et 11 est : Terminal.ecrireStringln(s.substring(7,11) ); Terminal.ecrireString("entrer un mot :" ); t = Terminal.lireString(); k=s.indexof(t); if (k==-1){ Terminal.ecrireStringln(t + " n est pas dans " + s ); else{ Terminal.ecrireStringln ("la premiere position de " + t +" est : " + k ); la sous chaine entre 7 et 11 est :ontr entrer un mot :un la premiere position de un est : 13 Maria Virginia Aponte (CNAM-Paris) NFA031 Année 2012/2013 16 / 23

Exemples k=s.lastindexof(t); if (k==-1){ Terminal.ecrireStringln(t + " n est pas dans "+ s ); else{ Terminal.ecrireStringln ("la derniere position de " + t +" est : " + k ); la derniere position de un est : 25 Maria Virginia Aponte (CNAM-Paris) NFA031 Année 2012/2013 17 / 23

Paramètre de la méthode main La méthode main possède un paramètre de type String [], qui est tableau de chaînes de caractères. Il est initialisé avec des informations saisies directement dans la ligne de commande lance l exécution du programme. Cela permet de communiquer des informations au programme depuis la ligne de commande, par exemple, un nom de fichier, une date, etc. Maria Virginia Aponte (CNAM-Paris) NFA031 Année 2012/2013 18 / 23

Paramètre de la méthode main: exemple Exemple: ce programme affiche les chaînes passées dans la ligne de commande. public class LigneCommande{ public static main(string [] args){ for (int i=1; i<args.length; i++){ Terminal.ecrireStringln(args[i]); java LigneCommande lundi mardi mercredi lundi mardi mercredi Maria Virginia Aponte (CNAM-Paris) NFA031 Année 2012/2013 19 / 23

Conversion String autres types Il existe des classes dédiées aux types primitifs: Integer pour le type primitif int, Double pour le type primitif double, Character pour le type primitif char,... Ces classes donnent une version "objet des types primitifs, mais contiennent également des nombreuses méthodes utiles: pour conversion en int, on utilise Integer.parseInt pour conversion en double, on utilise Double.parseDouble pour conversion en boolean, on utilise Boolean.parseBoolean... Maria Virginia Aponte (CNAM-Paris) NFA031 Année 2012/2013 20 / 23

Conversion String autres types Exemple: convertir la chaîne "12" vers int. Nous employons Integer.parseInt public class ConvertString{ public static main(string [] args){ int x; String s = "12"; x = Integer.parseInt(s); x = x+2; Terminal.ecrireIntln(x); Maria Virginia Aponte (CNAM-Paris) NFA031 Année 2012/2013 21 / 23

Conversion autres types String conversion type primitif vers chaîne: le plus simple est d utiliser l opérateur de concaténation, concaténer la chaîne vide à la valeur à convertir: une conversion implicite est opérée automatiquement par Java. Exemple: convertir l entier 12 en String. public class ConvertString{ public static main(string [] args){ int x = 12; String s = ""+x; Terminal.ecrireStringln(x); Autre possibilité: méthodes tostring des classes dédiées aux types primitifs: Integer.toString(int), Boolean.toString(int), etc. Maria Virginia Aponte (CNAM-Paris) NFA031 Année 2012/2013 22 / 23

Méthodes de la classe Character Méthodes de test: Characater.isLetter(c) Characater.isDigit(c) Characater.isUpperCase(c) Characater.isLowerCase(c) et des méthodes de conversion: Characater.toUpperCase(c) Characater.toLowerCase(c) Characater.toString(c) Maria Virginia Aponte (CNAM-Paris) NFA031 Année 2012/2013 23 / 23