Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Classe String
4IIR
Introduction
• String = une séquence de caractères.
• Java implémente les chaines de caractères comme des objets de type
String.
• L'implémentation des Strings sous forme d'objets permet à Java de
fournir un ensemble complet de fonctionnalités qui rendent la
manipulation des Strings plus pratique.
• Les objets String peuvent être construits de différentes manières..
EMSI-Java 2
4IIR
Introduction
• Java dispose de méthodes pour :
❑comparer deux chaînes de caractères,
❑rechercher une sous-chaîne,
❑concaténer deux chaînes et
❑changer la casse des lettres dans une chaîne.
EMSI-Java 3
4IIR
EMSI-Java 5
4IIR
EMSI-Java 6
4IIR
EMSI-Java 7
4IIR
EMSI-Java 8
4IIR
EMSI-Java 9
4IIR
Lenght()
• La méthode int lenght() renvoie le nombre de caractères d’une chaine
de caractères.
char[] tableChars = {'i','n','g','é','n','i','e','u','r'};
String chaine1 = new String(tableChars);
System.out.println(chaine1); //ingénieur
String chaine2 = "ingénieur";
System.out.println(chaine2); //ingénieur
System.out.println(chaine2.length()); // 9
EMSI-Java 10
4IIR
EMSI-Java 11
4IIR
EMSI-Java 12
4IIR
ValueOf()
int i =5;
String s =String.valueOf(i);
System.out.println(s); // 5
boolean b =false;
s=String.valueOf(b);
System.out.println(s); // false
char c ='k';
s=String.valueOf(c);
System.out.println(c); // k
EMSI-Java 13
ValueOf()
public class Livre {
private String titre;
private String auteur;
private int nbPage;
public Livre(String titre, String auteur, int nbPage) {
this.titre = titre;
this.auteur = auteur;
this.nbPage = nbPage;
}
public String toString() {
return "Livre : titre=" + titre + ", auteur=" + auteur + ", nbPage=" + nbPage ;
}
public static void main(String[] args) {
Livre livre = new Livre("Le seigneur des anneaux","John Ronald Reuel Tolkien",150);
String s =String.valueOf(livre);
System.out.println(s);
// Livre : titre=Le seigneur des anneaux, auteur=John Ronald Reuel Tolkien, nbPage=150
}
} EMSI-Java 14
Extraction de caractères
• String propose plusieurs façons d'extraire des caractères d'un objet
String :
❑charAt( )
❑getChars( )
❑getBytes( )
❑toCharArray( )
❑char[ ] toCharArray( )
EMSI-Java 15
4IIR
char charAt(int i)
• Pour extraire un seul caractère d'une chaîne de caractères, vous pouvez
vous référer directement à un caractère individuel via la méthode charAt( ).
• Elle a cette forme : char charAt(int i)
• Ici, i est l'index du caractère que vous voulez obtenir.
• La valeur de i doit être non négative et indiquer un emplacement dans la
chaîne de caractères.
char ch;
ch = "monde".charAt(1);//o
EMSI-Java 16
4IIR
getChars( )
• Pour extraire plus d'un caractère à la fois, utilisez la méthode getChars( ).
Elle a cette forme : void getChars(int sourceStart, int sourceEnd, char
target[ ], int targetStart)
• sourceStart spécifie l'index du début de la sous-chaîne,
• sourceEnd spécifie un index qui est un peu plus loin que la fin de la sous-
chaîne souhaitée.
• Le tableau qui recevra les caractères est spécifié par target.
• L'index dans target auquel la sous-chaîne sera copiée est passé dans
targetStart.
• Il faut veiller à ce que le tableau cible soit suffisamment grand pour
contenir le nombre de caractères de la sous-chaîne spécifiée.
EMSI-Java 17
getChars( )
String chaine = "Le programme suivant démontre getChars()";
int debut = 6 ;
int fin= 20;
char[] table = new char[fin-debut];
chaine.getChars(debut, fin, table, 0);
System.out.println(table); // gramme suivant
EMSI-Java 18
4IIR
getBytes( )
• Cette méthode stocke les caractères dans un tableau de byte.
• Elle utilise les conversions de caractères en bytes
• Sa forme est : byte[ ] getBytes( )
String chaine = "Bonjour";
byte[] tableBytes = chaine.getBytes();
for (byte b : tableBytes)
System.out.print(b+" "); // 66 111 110 106 111 117 114
EMSI-Java 19
4IIR
toCharArray( )
EMSI-Java 20
4IIR
EMSI-Java 21
equals et equalsIgnoreCase
String s1 = new String("Bonjour");
String s2 = new String("Bonjour");
String s3 = new String("bonjour");
String s4 = "Bonjour";
String s5 = "Bonjour";
regionMatches( )
• La méthode regionMatches( ) compare une région spécifique d'une chaîne avec une
autre région spécifique dans une autre chaîne.
• Elle est surchargé :
• regionMatches(int startIndex, String str2, int str2StartIndex, int
numChars)
• regionMatches(boolean ignoreCase, int startIndex, String
str2, int str2StartIndex, int numChars)
• Pour les deux versions, startIndex spécifie l'index auquel la région commence à l'intérieur
de l'objet String appelant.
• La String comparée est spécifiée par str2.
• L'index auquel la comparaison commencera dans str2 est spécifié par str2StartIndex.
• La longueur de la sous-chaîne comparée est passée dans numChars.
• Dans la deuxième version, si ignoreCase est true, la casse des caractères est ignorée.
Sinon, la casse est significative.
EMSI-Java 23
4IIR
regionMatches( )
String str1 = new String("Hello, How are you");
String str2 = new String("How");
String str3 = new String("HOW");
EMSI-Java 24
4IIR
startsWith( ) et endsWith( )
• booleen startsWith(String str) : détermine si une chaîne donnée
commence par une chaîne spécifiée.
• boolean endsWith(String str) : détermine si la chaîne en question
se termine par une chaîne spécifiée.
String str = "Hello";
boolean b = str.startsWith("He");
System.out.println(str + " commmence par He ? " + b );
// Hello commmence par He ? true
b = str.endsWith("lo");
System.out.println(str + " termine par lo ? " + b );
// Hello termine par lo ? true
EMSI-Java 25
4IIR
equals( ) Versus ==
• la méthode equals( ) et l'opérateur == effectuent deux opérations
différentes.
• la méthode equals( ) compare le contenu de deux chaines de
caractères.
• L'opérateur == compare deux références d'objet pour voir si elles se
réfèrent à la même instance.
EMSI-Java 26
4IIR
compareTo( )
• Souvent, il ne suffit pas de savoir si deux chaînes sont identiques.
Pour trier des Strings, il faut savoir laquelle est inférieure, égale ou
supérieure à la suivante.
• Une chaîne est inférieure à une autre si elle vient avant l'autre dans
l'ordre du dictionnaire.
• Une chaîne est plus grande qu'une autre si elle vient après l'autre
dans l'ordre du dictionnaire.
• compareTo( ) est spécifiée par l'interface Comparable<T>, que String
implémente. Elle a cette forme: int compareTo(String str)
• compareTo( ) prend en compte les lettres majuscules et minuscules.
EMSI-Java 27
4IIR
EMSI-Java 28
4IIR
Recherche de chaînes
• String propose deux méthodes pour rechercher une chaîne de
caractères ou une sous-chaîne de caractères donnée :
❑indexOf( ) Recherche la première occurrence d'un caractère ou
d'une sous-chaîne.
❑lastIndexOf( ) Recherche la dernière occurrence d'un caractère
ou d'une sous-chaîne de caractères.
• Ces deux méthodes sont surchargées.
• Elles renvoient l'index auquel le caractère ou la sous-chaîne a été
trouvé, ou -1 en cas d'échec.
EMSI-Java 29
4IIR
indexOf
String str1 = new String("Le programme suivant fait la démonstration de
IndexOf");
String str2 = new String("programme");
String str3 = new String("suivant");
String str4 = new String("démonstration");
System.out.println("Index de m dans str1: " + str1.indexOf('m'));
System.out.println("Index de m dans str1 après 5éme char: " +
str1.indexOf('m', 5));
System.out.println("Index de m dans str1 après 30éme char: " +
str1.indexOf('m', 30));
System.out.println("Index du string str2 dans str1: " + str1.indexOf(str2));
System.out.println("Index de str2 après 2éme char " + str1.indexOf(str2, 2));
System.out.println("Index de string str3: " + str1.indexOf(str3));
System.out.println("Index de string str4 " + str1.indexOf(str4));
EMSI-Java 30
4IIR
EMSI-Java 31
4IIR
substring( )
• Vous pouvez extraire une sous-chaîne en utilisant substring( ).
• Elle se présente sous deux formes.
• String substring(int startIndex)
• String substring(int startIndex, int endIndex)
String str = new String("Le Tigre peut atteindre une taille de 3 mètres de long");
System.out.println("Sous-chaîne à partir de l'indice 15:");
System.out.println(str.substring(14));
System.out.println("Sous-chaîne commençant à l'indice 15 et se terminant à 20:");
System.out.println(str.substring(14, 23));
EMSI-Java 32
concat( )
• concat( ) concaténe deux chaînes de caractères
• Elle a la forme suivante : String concat(String str)
• Cette méthode crée un nouvel objet qui contient la chaîne de
caractères appelante avec le contenu de str à la fin.
String str1 = "Bonjour";
str1 = str1.concat(" tout ");
str1 = str1.concat(" le monde ");
System.out.println(str1);
EMSI-Java 33
replace( )
• String replace (char oldChar, char newChar) : Elle remplace toutes
les occurrences d'un caractère oldChar par un caractère newChar.
• String replaceFirst(String regex, String replacement): Elle
remplace la première sous-chaîne qui correspond à l'expression
régulière spécifiée par la chaîne de remplacement.
PatternSyntaxException si l'expression régulière spécifiée (regex) n'est
pas valide.
• String replaceAll(String regex, String replacement): Elle remplace
toutes les sous-chaînes qui correspondent à l'expression régulière
donnée par la chaîne de remplacement.
EMSI-Java 34
replace( )
String str = new String("Exemple d'un texte à modifier");
EMSI-Java 35
trim( )
• La méthode trim( ) renvoie une chaîne après avoir supprimé les
espaces blancs de tête et de queue de la chaîne d'entrée.
EMSI-Java 36
split( )
• La méthode split est utilisée pour diviser une chaîne de caractères en
des sous-chaînes basées sur le délimiteur donné ou l'expression
régulière.
String str = new String("28/12/2013");
EMSI-Java 38
Join
• static String join(CharSequence delim, CharSequence . . . strs)
concaténer deux ou plusieurs chaînes de caractères, en séparant
chaque chaîne par un délimiteur :
EMSI-Java 39