:: Enseignements :: Licence :: L3 :: 2012-2013 :: Programmation Objet avec Java ::
|
String, StringBuilder, égalité, et expressions régulières
|
Exercice 1 - Assignation, égalité, référence
-
Qu'affiche le code suivant ?
String s1 = "toto";
String s2 = s1;
String s3 = new String(s1);
System.out.println(s1 == s2);
System.out.println(s1 == s3);
Expliquer.
-
Quelle est la méthode à utiliser si l'on veut
tester si le contenu des chaînes de caractères est le même ?
-
Qu'affiche le code suivant ?
String s1 = "toto";
String s2 = "toto";
System.out.println(s1 == s2);
Expliquer.
-
Expliquer pourquoi il est important que java.lang.String
ne soit pas mutable.
-
Qu'affiche le code suivant ?
String s = "hello";
s.toUpperCase();
System.out.println(s);
Expliquer.
Exercice 2 - En morse. Stop.
Ecrire une classe
fr.umlv.morse.Morse qui permet lors de
son exécution d'afficher les chaînes de caractères
prise en argument séparées par des
"Stop.".
$ java Morse ceci est drole
ceci Stop. est Stop. drole Stop.
-
Utiliser dans un premier temps
l'opérateur + qui permet la concaténation
de chaînes de caractères.
-
A quoi sert l'objet java.lang.StringBuilder ?
Pouquoi sa méthode append(String) renvoie-t-elle un objet de
type StringBuilder ?
-
Réécire la classe fr.umlv.morse.Morse en utilisant
un StringBuilder.
Quelle est l'avantage par rapport à la solution précédente ?
-
Recopier le code suivant dans une classe de Test :
public static void main(String[] args) {
String first = args[0];
String second = args[1];
String last = args[2];
System.out.println(first + ' ' + second + ' ' + last);
}
Compiler le code puis utiliser la commande javap
pour afficher le bytecode Java (qui n'est pas un assembleur)
généré
javap -c Test
Que pouvez-vous en déduire ?
Dans quel cas doit-on utiliser StringBuilder.append()
plutôt que le + ?
Et pourquoi le chargé de TD va me faire les gros yeux si j'écris un +
dans un appel à la méthode append .
Exercice 3 - Reconnaissance de motifs
Le but de cet exercice est la manipulation d'expressions régulières en java.
Nous utiliserons pour cela les classes du paquetage java.util.regex.
-
A quoi servent la classe java.util.regex.Pattern et sa méthode compile ?
A quoi sert la classe java.util.regex.Matcher ?
-
Ecrire un programme qui lit des chaines de caractères sur la ligne de commande
et affiche les chaines qui correspondent à des nombres. C'est-à-dire les
chaines dont tous les caractères sont compris entre '0' et '9'.
-
Modifier le programme pour que si une chaine de caractères commence par des caractères
qui ne sont pas des chiffres, ceux-ci soient pris en compte.
-
Ecrire une méthode qui prend en paramètre une chaine de caractère contenant une adresse IPv4
et renvoie un tableau de 4 bytes.
Vous utiliserez pour cela la notion de groupe.
© Université de Marne-la-Vallée