Introduction
Manipuler des nombres c'est bien, mais manipuler du texte c'est encore plus intéressant. En effet, beaucoup de programmes que l'on utilise vont avoir une interface avec l'utilisateur, et cette interface comporte quasi-systématiquement du texte. Que ce soit pour afficher le texte d'un bouton ou pour faire un traitement statistiques sur les mots d'un livre, la chaîne de caractères est un type de variable important. Comme pour les nombres il est possible de réaliser différentes opérations, que nous allons aborder, sur ce type de variables.
Introduction aux chaînes de caractères
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Objectif
Savoir comment définir et utiliser une chaîne de caractères.
Mise en situation
Comme son nom l'indique, une chaîne de caractères est une simple liste de un ou plusieurs caractères. En mémoire, les caractères sont stockés les uns à la suite des autres, en utilisant un encodage pour les convertir en nombres. Tout cela est géré par le langage de programmation, et au niveau du code source il suffit simplement d'initialiser une variable en lui assignant le texte que l'on veut y mettre en valeur. Ce texte devra uniquement être entouré de guillemets doubles ou simples, pour signifier que c'est une variable de type chaîne de caractères.
Définition : Chaîne de caractères
Une chaîne de caractères est une liste ordonnée de zéro, un ou plusieurs caractères. Elle s'écrit en général dans les langages de programmation entre guillemets doubles ou simples : "
ou '
.
Exemple :
"""Python."""
str = 'Bonjour'
print(str)
/** JavaScript */
const str = 'Bonjour'
console.log(str)
Les deux programmes affichent Bonjour
.
Méthode : Choix des guillemets
En JavaScript, il est possible d'utiliser les guillemets doubles ou simples, mais il est d'usage de placer les chaînes de caractères entre guillemets simples lorsque que les chaînes ne possèdent pas de caractère
'
.En Python, il est également possible d'utiliser les guillemets doubles ou simples. Il n'y a pas de préférence officielle.
Dans tous les cas on agit avec cohérence pour l'ensemble du programme :
que des guillemets doubles,
que des guillemets simples,
que des guillemets simples sauf quand il y a un caractère guillemet simple,
que des guillemets doubles sauf quand il y a un caractère guillemet double,
etc.
Complément : Ressemblances entre chaînes et tableaux de caractères
Un chaîne de caractères peut être vue comme un tableau de caractères de dimension 1.
Certaines fonctionnalités sont identiques entre les chaînes et les tableaux de caractères, par exemple .length
renvoie dans les deux cas le nombre d'éléments, ou de caractères.
À retenir
Les chaînes de caractères et les tableaux de caractères sont déclarés et initialisés différemment, ils peuvent tous deux utiliser certaines fonctions mais ne sont pas parfaitement équivalents.
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Appliquer la notion
Pour les questions suivantes, utiliser la déclaration de variables ci-dessous comme base.
/** JavaScript */
const title = 'Harry Potter'
Afficher la lettre y
à partir de la variable title
.
La syntaxe title[indice]
permet de récupérer un caractère particulier. Les indices commencent à 0, et y est le cinquième caractère.
/** JavaScript */
const title = 'Harry Potter'
console.log(title[4])
Les indices commencent à 0, donc l'indice de y
est 4.
Afficher la longueur de title
.
/** JavaScript */
const title = 'Harry Potter'
console.log(title.length)
Opérations sur les chaines
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Objectifs
Savoir manipuler des chaînes de caractères ;
Savoir extraire des informations d'une chaîne de caractères.
Mise en situation
Il existe beaucoup de fonctions de manipulations de chaînes, voici les plus utiles.
Rappel :
/** JavaScript */
const citation = 'Par une soirée extrêmement chaude du début de juillet...'
console.log(citation.length)
console.log(citation[4])
console.log(citation.substring(8, 14))
"""Pyhton."""
citation = 'Par une soirée extrêmement chaude du début de juillet...'
print(len(citation))
print(citation[4])
print(citation[8:14])
Ces deux programmes retournent :
56
u
soirée
Méthode : Mettre une chaîne en majuscule
Pour mettre une chaîne en majuscule on utilise la méthode .toUpperCase()
en JavaScript.
En Python, on utilise la méthode .upper()
.
Exemple :
"""Python."""
str = 'Bonjour tout le monde'
up = str.upper()
print(up)
/** JavaScript */
const str = 'Bonjour tout le monde'
const up = str.toUpperCase()
console.log(up)
Les deux programmes affichent BONJOUR TOUT LE MONDE
.
Méthode : Vérifier si une sous chaîne est contenue dans une chaîne
Pour vérifier si une sous chaîne est incluse dans une chaîne on utilise la méthode .includes(subString)
.
En Python on utilise l'opérateur in
.
Exemple :
"""Python."""
str = 'Bonjour tout le monde'
include = 'Bonjour' in str
print(include)
/** JavaScript */
const str = 'Bonjour tout le monde'
const include = str.includes('Bonjour')
console.log(include)
Les deux programmes renvoient la valeur booléenne true
.
Méthode : Tester le début d'une chaîne
Pour tester si une sous-chaîne se trouve au début d'une chaîne on utilise la méthode .startsWith(subString)
en JavaScript.
En Python, on utilise la méthode startswith(sub_string)
.
Exemple :
"""Python."""
str = 'Bonjour tout le monde'
start = str.startswith('tout')
print(start)
/** JavaScript */
const str = 'Bonjour tout le monde'
const start = str.startsWith('tout')
console.log(start)
Les deux programmes renvoient la valeur booléenne false
.
Complément : Parcourir une chaîne
En JavaScript, la structure (for...of)
permet de parcourir tous les éléments d'une liste, comme un tableau ou une chaîne de caractères. Il s'agit d'un type particulier de boucle qui commence à l'indice 0 de la chaîne et s’arrête à la fin.
En Python, la structure équivalent est for in
.
Cette fonction est notamment utilisée lorsqu'on veut appliquer le même traitement à tous les éléments de la chaîne.
/** JavaScript */
const citation = 'Engage le jeu que je le gagne'
for (const char of citation) {
console.log(char)
}
"""Python."""
citation = 'Engage le jeu que je le gagne'
for char in citation:
print(char)
Complément : Documentation
La documentation MDN liste toute les fonctions disponibles comme, par exemple, replace qui permet de faire du remplacement de caractères.
developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/String
À retenir
Il existe de nombreuses méthodes pour manipuler les chaînes de caractères, elles ne s'utilisent pas de la même façon en JavaScript et en Python.
Il est préférable d'utiliser les guillemets simples.
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Appliquer la notion
Pour les questions suivantes, on utilisera les déclarations ci-dessous qui définissent deux titre de livres adaptés au cinéma :
/** JavaScript */
const title1 = 'Alice au pays des merveilles'
const title2 = 'Charlie et la chocolaterie'
Vérifier si la chaîne title1
contient la sous chaîne des
à l'aide d'une fonction.
const title1 = 'Alice au pays des merveilles'
console.log(title1.includes('des'))
Le programme affiche true
.
La fonction includes()
ne cherche pas des mots, elle cherche des groupes de lettres, qui forment un mot ou pas.
Tester si la chaîne title2 commence par la lettre charl
à l'aide d'une fonction.
const title2 = 'Charlie et la chocolaterie'
console.log(title2.startsWith('charl'))
Le programme affiche false
.
La fonction startsWith()
respecte la casse et différencie les majuscules et les minuscules.
Afficher les chaîne title1
et title2
de façon à ce qu'elles ne contiennent que des majuscules à l'aide d'une fonction.
const title1 = 'Alice au pays des merveilles'
const title2 = 'Charlie et la chocolaterie'
console.log(title1.toUpperCase())
console.log(title2.toUpperCase())
Concaténation
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Objectif
Savoir à quoi correspond la concaténation et comme l'utiliser.
Mise en situation
Une opération de manipulation de texte que nous n'avons pas abordée et qui semble pourtant naturelle est la concaténation. C'est l'opération qui consiste à raccorder entre elles 2 chaînes de caractères pour n'en former qu'une seule. Imaginez que votre programme demande le nom de votre utilisateur, le stocke dans une variable, puis veuille afficher un message de bienvenue. La chaîne de caractères que vous allez afficher sera la concaténation de votre message générique et du nom de l'utilisateur.
Définition : La concaténation
La concaténation est une opération de « collage » de chaînes de caractères. Il s'agit tout simplement d'ajouter une chaîne à la suite d'une autre.
La concaténation s'effectue grâce à l'opérateur +
. Elle place les chaînes les unes à la suite des autres, sans les séparer avec des espaces : c'est au programmeur de s'en occuper.
On peut concaténer un nombre quelconque de chaînes.
Exemple :
/** JavaScript */
const str1 = 'miel'
const str2 = 'de'
const str3 = 'printemps'
const label = str1 + str2 + str3
console.log(label)
"""Python."""
str1 = 'miel'
str2 = 'de'
str3 = 'printemps'
label = str1 + str2 + str3
print(label)
Les deux programmes affichent mieldeprintemps
.
Syntaxe :
Il est possible d'afficher directement la concaténation de chaînes avec l'instruction d'impression sur la sortie standard.
en JavaScript :
console.log(str1, str2, ...)
en python :
print(str1, str2, ...)
Les chaînes sont dans ce cas automatiquement espacées les unes des autres.
Exemple :
"""Pyhton."""
str1 = 'pirates'
str2 = 'des'
str3 = 'Caraibes'
print(str1, str2, str3)
/** JavaScript */
const str1 = 'pirates'
const str2 = 'des'
const str3 = 'Caraïbes'
console.log (str1, str2, str3)
Les deux programmes affichent pirates des Caraïbes
.
Méthode : Fonction de concaténation
Il existe plusieurs façon de concaténer des chaînes. On peut utiliser l'opérateur +
mais cela peut créer de la confusion avec les additions entre nombres.
En JavaScript on utilise la méthode
.concat()
qui fait la concaténation de chaînes de caractères : la première chaîne est celle qui appelle la méthode.concat()
et les autres sont placées entre les parenthèses.str1.concat(' ', str2, ...)
En Python, il est préférable d'utiliser la méthode
''.join([])
qui concatène plusieurs chaînes en les séparant avec le caractère placé entre guillemets simples.' '.join([str1, str2, ...])
Exemple :
"""Pyhton."""
str1 = 'pirates'
str2 = 'des'
str3 = 'Caraibes'
title = ' '.join([str1, str2, str3])
print(title)
/** JavaScript */
const str1 = 'pirates'
const str2 = 'des'
const str3 = 'Caraïbes'
const title = str1.concat(' ', str2, ' ', str3)
console.log (title)
Les deux programmes affichent pirates des Caraïbes
.
Complément : Littéraux de gabarits en JavaScript
Les littéraux de gabarits permettant d'intégrer des chaînes de caractères multi-lignes ou d'insérer des valeurs de variables directement à l'intérieur de chaînes de caractères.
developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Littéraux_gabarits
À retenir
La concaténation consiste à « coller » des chaînes les unes à la suite des autres. Il est possible de concaténer des chaînes avec l'opérateur + ou d'utiliser les méthodes dédiées à la concaténation. Le choix est laissé au développeur, selon le contexte et la clarté du code.
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Appliquer la notion
Pour répondre aux questions suivantes, utiliser les définitions ci dessous :
/** JavaScript */
const name = 'X-men'
const movie1 = 'Le commencement'
const movie2 = 'Apocalypse'
const movie3 = 'Dark phoenix'
Concaténer les deux premières chaînes, en les espaçant, avec la méthode de votre choix. Le programme doit afficher « X-men Le commencement ».
const name = 'X-men'
const movie1 = 'Le commencement'
const completeName = name.concat(' ', movie1)
console.log(completeName)
On aurait aussi pu écrire :
const name = 'X-men'
const movie1 = 'Le commencement'
const completeName = name + ' ' + movie1
console.log(completeName)
Concaténer les chaînes 1 et 3 en les séparant avec le symbole :
en utilisant la méthode de votre choix. Le programme doit afficher « X-men:Apocalypse ».
const name = 'X-men'
const movie2 = 'Apocalypse'
const completeName = name.concat(':', movie2)
console.log(completeName)
On aurait aussi pu écrire :
const name = 'X-men'
const movie2 = 'Apocalypse'
const completeName = name + ':' + movie2
console.log(completeName)
Concaténer toutes les chaînes de façon à afficher : X-men : Le commencement, Apocalypse, Dark phoenix
.
Attention à la différence de séparateurs entre les différences chaînes.
const name = 'X-men'
const movie1 = 'Le commencement'
const movie2 = 'Apocalypse'
const movie3 = 'Dark phoenix'
const list = name.concat(' : ', movie1, ', ', movie2, ', ', movie3, '.')
console.log(list)
On aurait aussi pu écrire :
const name = 'X-men'
const movie1 = 'Le commencement'
const movie2 = 'Apocalypse'
const movie3 = 'Dark phoenix'
const list = name + ' : ' + movie1 + ', ' + movie2 + ', ' + movie3 + '.'
console.log(list)
Les caractères spéciaux
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Objectif
Comprendre la spécificité des caractères spéciaux et leur utilisation.
Mise en situation
Comment afficher la chaîne de caractères c'est l'été
?
L'affichage de chaîne est une opération simple qui peut se complexifier dès que l'on souhaite afficher des caractères particuliers comme les apostrophes, les guillemets, les tabulations ou les antislash.
Définition : Les caractères spéciaux
Certains caractères ont une signification particulière, lorsque le compilateur en rencontre un, il effectue un traitement particulier, c'est le cas des guillemets simples ou doubles qui sont considérés comme le début et la fin d'une chaîne de caractères.
Exemple : Erreur : afficher une chaîne contenant des apostrophes
"""Python."""
str1 = 'c'est l'été'
print(str1)
/** JavaScript */
const srt1 = 'c'est l'été'
console.log(str1)
Ces deux programmes ne fonctionnent pas parce que l'interpréteur considère qu'il y a deux chaînes et des caractères entre les deux, et donc qu'il y a une erreur de syntaxe.
Solution
Il existe deux façon de résoudre ce problème.
Il est possible de placer la chaîne entre guillemets doubles, les apostrophes ne seront donc pas considérées comme des délimiteurs de chaîne. Cependant, cela ne permet pas de résoudre le problème si on veut une chaîne contenant à la fois des guillemets simples et des guillemets doubles.
L'autre méthode est donc de signaler qu'on veut insérer un caractère spécial en plaçant un antislash avant.
Exemple :
"""Python."""
message = 'c\'est l\'été'
print(message)
message = "c'est l'été"
print(message)
/** JavaScript */
let message = 'c\'est l\'été'
console.log(message)
message = "c'est l'été"
console.log(message)
Les deux programmes affichent c'est l'été
.
Attention : Afficher le caractère antislash
Pour afficher le caractère antislash il faut indiquer au compilateur qu'il ne s'agit pas d'un caractère spécial. Il faut donc le précéder d'un antislash : \\
.
Syntaxe : Les caractères spéciaux de mise en page
Pour demander au compilateur d'aller à la ligne on utilise \n
, pour demander à faire une tabulation on utilise \t
.
Il existe beaucoup d'autres caractères spéciaux de ce types, mais ceux-là sont les plus utilisés.
Rappel : Encodage des caractères
Étant donné que les ordinateurs ne peuvent comprendre que le langage binaire chaque caractère doit être associé à un nombre binaire particulier. Au début de l'informatique des américains ont créé le code ASCII (American Standard Code for Information Interchange) qui permet d'écrire n'importe quel texte en anglais.
Cependant, cet encodage ne permet pas d'écrire certains caractères d'autres langues (par exemple les caractères accentués français). Plusieurs autres encodages ont donc été créés et aujourd'hui l'encodage UTF-8, qui permet d'écrire presque la totalité des caractères utilisés dans le monde, est le plus répandu.
Complément : Tous les caractères spéciaux en JavaScript
\0 Octet null
\b Retour arrière
\f Saut de page
\n Nouvelle ligne
\r Retour chariot
\t Tabulation
\v Tabulation verticale
\' Apostrophe ou guillemet droit simple
\" Guillemet droit double
\\ Barre oblique inversée
developer.mozilla.org/fr/docs/Web/JavaScript/Guide/Types_et_grammaire
À retenir
Certains caractères sont considérés comme spéciaux et associés à une fonction particulière. Pour les utiliser dans un autre contexte, par exemple pour les afficher il faut indiquer au compilateur que le caractère en question n'est pas spécial, il faut donc placer un antislash avant.
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Appliquer la notion
En affichant certains caractères à un emplacement précis il est possible de réaliser de magnifiques images.
Dans l'art ASCII, on utilise seulement les caractères de la table ASCII ce qui permet de générer des images en noir et blanc.
Écrire un programme qui affiche le smiley japonais content : ^_^
.
Puis afficher deux rectangles de même largeur l'un en dessous de l'autre, le premier dont les cotés sont dessinés avec des traits, le second avec des croisillons (#).
Chaque rectangle doit être affiché avec une seule instruction console.log
.
On utilisera le caractère spécial \n
pour retourner à la ligne.
/** JavaScript */
console.log('^_^')
console.log('___\n| |\n| |\n___')
console.log('###\n# #\n# #\n###')
Essentiel
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Quiz
Quiz - Culture
Quel est l'encodage (le nombre décimal associé) du caractère 'C' dans la table ASCII ? Et quel est celui du caractère 'c' ?
99 et 67
99 et 99
67 et 67
67 et 99
Tous les caractères, lorsqu'ils sont précédés d'un antislash, forment des caractères spéciaux.
Vrai
Faux
Une chaîne de caractères peut être assimilée à un tableau de chaînes de caractères de dimension 1.
Vrai
Faux
Quiz - Méthode
Quels symboles peuvent encadrer les chaînes de caractères ?
'
"
|
*
Quelle solution permet de concaténer des chaînes de caractères en JavaScript ?
Utiliser l'opérateur +
Utiliser la méthode .concat()
Utiliser la méthode .join()
Qu'affiche le programme suivant ?
const nbPants = 3
const nbSkirts = 5
console.log('Nombre de vêtements: ' + nbPants + nbSkirts)
console.log('Nombre de vêtements: ' + (nbPants + nbSkirts))
Nombre de vêtements: 35
Nombre de vêtements: 8
Nombre de vêtements: 35
Nombre de vêtements: 35
Nombre de vêtements: 8
Nombre de vêtements: 8
Nombre de vêtements: 8
Nombre de vêtements: 35
Quelle instruction affiche la citation "Rien ne sert de courir, il faut partir à point" (entre doubles apostrophes) suivie du nom de son auteur (Jean de La Fontaine), séparés par une virgule ?
console.log(""Rien ne sert de courir, il faut partir à point", Jean de la Fontaine")
console.log(''Rien ne sert de courir, il faut partir à point' , Jean de la Fontaine')
console.log("'Rien ne sert de courir, il faut partir à point', Jean de la Fontaine")
console.log('"Rien ne sert de courir, il faut partir à point", Jean de la Fontaine')
console.log("\"Rien ne sert de courir, il faut partir à point\", Jean de la Fontaine")
Qu'affiche l'instruction suivante ?
/** JavaScript */
console.log('c\'est \n\'importe quoi')
« c'est n'importe quoi »
« c'est 'n'importe quoi »
« c'est
'importe quoi »
« c'est
nimporte quoi »
Quiz - Code
/** JavaScript */
const music1 = 'Alors, alors'
const music2 = 'Poker face'
const music3 = 'Gangnam Style'
A partir des déclarations ci-dessus quelle instruction affiche le mot « Poker » ?
console.log(music2.substring(0,5))
console.log(music2.substring(1,6))
/** JavaScript */
const music1 = 'Alors, alors'
const music2 = 'Poker face'
const music3 = 'Gangnam Style'
A partir des déclarations ci-dessus, quelle instruction permet d'afficher music3
en majuscule ?
console.log(music3.touppercase())
console.log(music3.toUpperCase())
console.log(music3.upperCase())
console.log(music3.uppercase())
/** JavaScript */
const music1 = 'Alors, alors'
const music2 = 'Poker face'
const music3 = 'Gangnam Style'
Quelle instruction permet d'afficher les trois chaînes, espacées et séparées par le symbole & ?
console.log(music1, music2, music3.concat(' & '))
console.log(music1, music2, music3.join(' & '))
console.log(music1.concat(' & ', music2, ' & ', music3))
A partir des déclarations ci-dessous, quelles instructions affichent la longueur de la chaîne book2
?
/** JavaScript */
const book1 = '1984'
const book2 = 'Le meilleur des mondes'
const lengthBook = book2.length
console.log('Longueur chaine : ' + lengthBook)
const lengthBook = book2.length()
console.log('Longueur chaine : ' + lengthBook)
const lengthBook = book2.length
console.log('Longueur chaine : ' lengthBook)
const lengthBook = book2.length()
console.log('Longueur chaine : ' lengthBook)
Quiz - Culture
Quel est l'encodage (le nombre décimal associé) du caractère 'C' dans la table ASCII ? Et quel est celui du caractère 'c' ?
99 et 67
99 et 99
67 et 67
67 et 99
Les lettres majuscules et minuscules n'ont pas le même encodage, c'est pour cela qu'il est possible de les différencier.
Tous les caractères, lorsqu'ils sont précédés d'un antislash, forment des caractères spéciaux.
Vrai
Faux
La lettre n
n'est pas un caractère spécial mais \n
déclenche un retour à la ligne dans une chaîne de caractères.
En revanche, tous les caractères précédés par un antislash ne sont pas des caractères spéciaux : '\9' n'est pas un caractère spécial.
Une chaîne de caractères peut être assimilée à un tableau de chaînes de caractères de dimension 1.
Vrai
Faux
C'est vrai, mais beaucoup de méthodes sont spécifiques aux chaînes de caractères et ne s'appliquent pas aux tableaux, comme toUpperCase()
.
Quiz - Méthode
Quels symboles peuvent encadrer les chaînes de caractères ?
'
"
|
*
On peut utiliser des guillemets simple ou doubles. En JavaScript, on utilise par convention les guillemets simples (simple quote), ou apostrophes.
Quelle solution permet de concaténer des chaînes de caractères en JavaScript ?
Utiliser l'opérateur +
Utiliser la méthode .concat()
Utiliser la méthode .join()
Nombre de vêtements: 35
Nombre de vêtements: 8
Nombre de vêtements: 35
Nombre de vêtements: 35
Nombre de vêtements: 8
Nombre de vêtements: 8
Nombre de vêtements: 8
Nombre de vêtements: 35
Dans la première instruction d'affichage, les opérations sont effectuées de gauche à droite. L'opérateur +
, appliqué sur une chaîne et un nombre, effectue une concaténation entre la chaîne et le nombre. Le deuxième +
s'applique donc une nouvelle fois sur la première chaîne concaténée et le dernier nombre.
Dans la deuxième instruction d'affichage, la première opération effectuée est l'addition des deux nombres, à cause des parenthèses. Le premier +
est donc appliqué à la fin, et concatène la chaîne Nombre de vêtements avec le résultat de l'addition.
L'opérateur + est donc très pratique pour concaténer des chaînes rapidement mais doit être utilisé avec précaution dans certains cas.
Quelle instruction affiche la citation "Rien ne sert de courir, il faut partir à point" (entre doubles apostrophes) suivie du nom de son auteur (Jean de La Fontaine), séparés par une virgule ?
console.log(""Rien ne sert de courir, il faut partir à point", Jean de la Fontaine")
console.log(''Rien ne sert de courir, il faut partir à point' , Jean de la Fontaine')
console.log("'Rien ne sert de courir, il faut partir à point', Jean de la Fontaine")
console.log('"Rien ne sert de courir, il faut partir à point", Jean de la Fontaine')
console.log("\"Rien ne sert de courir, il faut partir à point\", Jean de la Fontaine")
Les réponses 1 et 2 qui utilisent un seul type de guillemets vont générer une erreur.
La réponse 3 fonctionne, mais elle affiche la citation entre simples apostrophes au lieu de doubles.
Les réponses 4 et 5 sont correctes mais il vaut mieux utiliser la syntaxe de la réponse 4 qui respecte les conventions du JavaScript (c'est à dire placer les chaînes de caractères entre guillemets simples) et évite les caractères d'échappement.
« c'est n'importe quoi »
« c'est 'n'importe quoi »
« c'est
'importe quoi »
« c'est
nimporte quoi »
Les apostrophes sont précédées d'un antislash, donc correctement affichées, le caractère \n déclenche un retour à la ligne.
Quiz - Code
console.log(music2.substring(0,5))
console.log(music2.substring(1,6))
Les indices commencent à 0.
console.log(music3.touppercase())
console.log(music3.toUpperCase())
console.log(music3.upperCase())
console.log(music3.uppercase())
C'est la méthode .toUpperCase()
dont le nom est écrit selon la convention de casse camelCase.
console.log(music1, music2, music3.concat(' & '))
console.log(music1, music2, music3.join(' & '))
console.log(music1.concat(' & ', music2, ' & ', music3))
La première instruction ne déclenche pas d'erreur mais ne correspond pas à l'affichage demandé.
La deuxième instruction déclenche une erreur.
const lengthBook = book2.length
console.log('Longueur chaine : ' + lengthBook)
const lengthBook = book2.length()
console.log('Longueur chaine : ' + lengthBook)
const lengthBook = book2.length
console.log('Longueur chaine : ' lengthBook)
const lengthBook = book2.length()
console.log('Longueur chaine : ' lengthBook)
Il ne faut pas mettre de parenthèses après length
. Il faut concaténer les deux informations pour l'affichage, ici il est plus rapide d'utiliser l’opérateur +
pour concaténer.
Défi final
La librairie « Au fil des pages » souhaite revoir l'affichage de ses livres.
Écrire un programme qui améliore l'affichage des livres de la librairie, en utilisant les déclarations fournies :
// Meilleures ventes
const bestS1 = 'Le petit Prince'
const bestS2 = 'Le mariage de Figaro'
// Livres de la série Narnia
const serie1 = 'Le neveu du magicien'
const serie2 = 'Le prince Caspian'
// Titres sans apostrophe
let error1 = 'Le songe dune nuit dété'
let error2 = 'Le lion, la sorcière blanche et larmoire magique'
// Titres les uns à la suite des autres
const title = 'PhèdreAndromaqueBritannicus'
Pour commencer, il faut mettre en avant les meilleures ventes.
Afficher les titres des best-sellers en majuscules et précédés de la mention « Meilleures ventes »
. On doit obtenir l'affichage suivant :
Meilleures ventes : LE PETIT PRINCE
Meilleures ventes : LE MARIAGE DE FIGARO
Il faut utiliser la fonction .toUpperCase()
.
console.log('Meilleures ventes : ' + bestS1.toUpperCase())
console.log('Meilleures ventes : ' + bestS2.toUpperCase())
Ensuite, il faut faciliter la recherche des lecteurs.
Indiquer que certains livres appartiennent à une série en affichant le nom de la série avant celui du livre. On doit obtenir l'affichage suivant :
Narnia : Le neveu du magicien, Le prince Caspian
Il faut faire une concaténation avec la fonction .concat()
par exemple.
console.log('Narnia'.concat(' : ', serie1, ', ', serie2))
De plus, il faut corriger des erreurs sur certains titres. En effet, un des éditeurs a eu un problème de clavier : sa touche de guillemets simple ne fonctionnait plus.
On doit obtenir l'affichage suivant :
Le songe d'une nuit d'été
Le lion la sorcière blanche et l'armoire magique
Les guillemets sont des caractères spéciaux, il faut les précéder d'un antislash.
/** JavaScript */
error1 = 'Le songe d\'une nuit d\'été'
console.log(error1)
error2 = 'Le lion, la sorcière blanche et l\'armoire magique'
console.log(error2)
Enfin, un autre éditeur a envoyé les titres de ses livres les uns à la suite des autres, collés entre eux. Cela perturbe les lecteurs. Séparer les titres et les afficher les uns à la suite des autres sans ré-écrire les titres.
On doit obtenir l'affichage suivant :
Phèdre
Andromaque
Britannicus
Il faut extraire des sous-chaînes avec la fonction .substring(début, fin)
.
/** JavaScript */
const title1 = title.substring(0, 6)
console.log(title1)
const title2 = title.substring(6, 16)
console.log(title2)
const title3 = title.substring(16, 27)
console.log(title3)
Conclusion
Les chaînes de caractères sont plus complexes que les nombres, mais cela n'empêche pas un grand nombre d'opérations possibles sur celles-ci. Des fonctions de traitement basique du texte sont disponibles dans tous les langages, et des fonctions plus avancées peuvent être trouvées dans des bibliothèques. Une des plus courante est sans doute la concaténation, qui permet de mettre bout à bout 2 chaînes de caractères. De cette manière il est possible d'intégrer du texte dynamique, qui serait stocké dans une variable, au sein d'un message générique, qui sert de modèle.