Si vous devez combiner 2 string
dans un même texte, rien de plus simple:
const t1 = 'Hello';
const t2 = 'World';
const result = t1 + ' ' + t2;
Mais si les textes sont des functions T( )
, cela se complique. Vous ne pouvez
pas faire ceci:
const t1 = T('Hello');
const t2 = T('World');
const result = t1 + ' ' + t2;
t1
et t2
sont des fonctions. Il est donc évident
qu’on ne peut pas construire la string
ainsi!
Pour cela, il faut utilser StringBuilder
, et écrire:
import StringBuilder from 'goblin-nabu/lib/string-builder.js';
const t1 = T('Hello');
const t2 = T('World');
const result = StringBuilder.combine(t1, ' ', t2);
Si nous voulons construire la description d’une personne à partir de son prénom et de son nom, on peut être tenté d’écrire:
function getName(firstName, lastName) {
return firstName + ' ' + lastName;
}
Mais il y a un problème si le prénom et/ou le nom n’existent pas:
firstName and lastName |
Result |
---|---|
"John" , "Difool" |
“John Difool” (perfect) |
"" , "Difool" |
" Difool" (problem, there is a space in front of the name) |
null , "Difool" |
" Difool" (problem, there is a space in front of the name) |
"John" , "" |
“John " (problem, there is a space after the name) |
"John" , null |
“John " (problem, there is a space after the name) |
Heureusement, StringBuilder
a ce qu’il faut:
function getName(firstName, lastName) {
return StringBuilder.joinWords(firstName, lastName);
}
Cette function accepte également un tableau:
const array = ["It's", 'magic!'];
const text = StringBuilder.joinWords(array);
joinWords
fonctionne bien entendu avec des string
ou des
fonctions T( )
.
Il existe plusieurs autres fonctions utiles pour appondre
des textes. Citons joinSentences
, joinHyphen
et joinLines
. Quant à lui,
join
permet de choisir le séparateur.
Function | Action |
---|---|
joinWords |
Appends several texts, separated by spaces. |
joinSentences |
Appends several texts, separated by commas and spaces (", " ). |
joinHyphen |
Appends several texts, separated by hyphens (U+2014). |
joinLines |
Appends several lines. |
join |
Appends several texts, with a separator of your choice. |
combine |
Appends sevral texts as is. |
StringBuilder
est une classe statique. Il n’est donc pas
nécessaire de l’instancier.