Les chaînes de caractères

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

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éfinitionChaî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éthodeChoix 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émentRessemblances 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.

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

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éthodeMettre 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éthodeVé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éthodeTester 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émentParcourir 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émentDocumentation

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.

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

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éfinitionLa 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éthodeFonction 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émentLitté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.

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

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éfinitionLes 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.

ExempleErreur : 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.

  1. 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.

  2. 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é.

AttentionAfficher 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 : \\.

SyntaxeLes 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.

RappelEncodage 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émentTous 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.

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.

Art ASCII

É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

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' ?

Table ASCII

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' ?

Table ASCII

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.

Liste des raccourcis clavier

Liste des fonctions de navigation et leurs raccourcis clavier correspondant :

  • Bloc Suivant : flèche droite, flèche bas, barre espace, page suivante, touche N
  • Bloc Précédent : flèche gauche, flèche haut, retour arrière, page précédente, touche P
  • Diapositive Suivante : touche T
  • Diapositive Précédente : touche S
  • Retour accueil : touche Début
  • Menu : touche M
  • Revenir à l'accueil : touche H
  • Fermer zoom : touche Échap.