![]() |
Programmation en language LUA |
Les chaînes de caractères |
Des chaînes de caractères peuvent être définies utilisant des guillements simples, de doubles guillements, ou de doubles crochets.
> = "bonjour"
bonjour
>= 'bonjour '
bonjour
>= [ [ bonjour ] ]
bonjour
Pourquoi tant de manières pour faire une chaîne de caractères ? Cela vous permet d'inclure un type de guillements dans un autre, par exemple:
> = 'hello "Lua user"'
hello "Lua user"
>
= "Its [[content]] hasn't got a substring."
Its [[content]] hasn't got a substring.
>
= [[Let's have more "strings" please.]]
Let's have more "strings" please.
Les chaînes de caractères encadrées par double crochets ont également quelques autres propriétés spéciales, abordées ci-dessous.
Lua peut également manipuler des séquences d'échappement comme en C.
> = "hello \"Lua user\""
hello "Lua user"
> = 'hello\nNew line\tTab'
hello
New line Tab
Les séquences d'échappement ne sont pasreconnue quand on utilise les doubles parenthèses, ainsi :
> = [[hello\nNew line\tTab]]
hello\nNew line\tTab
Escape Sequence | Represents |
---|---|
\a |
Bell (alert) |
\b |
Backspace |
\f |
Formfeed |
\n |
New line |
\r |
Carriage return |
\t |
Horizontal tab |
\v |
Vertical tab |
\' |
Single quotation mark |
\ " |
Double quotation mark |
\\ |
Backslash |
\? |
Literal question mark |
\ ooo |
ASCII character in octal notation |
\x hh |
ASCII character in hexadecimal notation |
\x hhhh |
Unicode character in hexadecimal notation if this escape sequence is used in a wide-character constant or a Unicode string literal. For example, WCHAR f = L'\x4e00' or WCHAR b[] = L"The Chinese character for one is \x4e00". |
De doubles crochets peuvent être utilisés pour enfermer les chaînes de caractères littérales qui traverse plusieurs lignes par exemple,
> = [[Multiple lines of text
>>
can be enclosed in double square
>>
brackets.]]
Multiple lines of text
can be enclosed in double square
brackets.
Des lignes multiples du texte peuvent être jointes par les doubles crochets.
Les double crochets permettent de emboîtement , mais ils nécessitent que un ou plusieurs signe =soit inséré entre les crochets extérieurs pour les distinguer les ,uns des autres. Cela ne dépend pas de combien de signe = sont insérés, tant que le nombre est le même à l'ouvertrue et à la fermeture des crochets .
> = [[one [[two [[three]] ]] ]]
one [[two [[three]] ]]
Des chaînes de caractères peuvent être jointes en
utilisant l'opérateur de concaténation "..
". par
exemple,
> = "hello" .. " Lua user"
hello Lua user
>
who = "Lua user"
>
= "hello "..who
hello Lua user
Des nombres peuvent être enchaînés aux chaînes de caractères . Dans ce cas-ci ils sont contraints dans des chaînes de caractères et alors enchaînés. Vous pouvez lire plus au sujet de la coercition ci-dessous.
> = "Green bottles: "..10
Green bottles: 10
>
= type("Green bottles: "..10)
string
Lua fournit tout une gamme des fonctions pour le traitement des chaînes de caractères dans sa bibliothèque standard. Ci-dessous quelques exemples de l'utilisation de la bibliothèque de chaîne de caractères.
> = string.byte("ABCDE", 2) -- return the ASCII
value of the second
character
66
> = string.char(65,66,67,68,69) -- return a string constructed from ASCII
values
ABCDE
>
= string.find("hello Lua user", "Lua") -- find substring "Lua"
7 9
>
= string.find("hello Lua user", "l+") -- find one or more
occurrences of "l"
3 4
>
= string.format("%.7f", math.pi) -- format a number
3.1415927
>
= string.format("%8s", "Lua") -- format a string
Lua
Voir le chapitre sur les fonctions de chaines de caractères en LUA pour plus de détails.
Lua exécute la conversion automatique des nombres en chaînes de caractères et vice versa si c'est approprié. Ceci s'appelle la coercition.
> = "This is Lua version " .. 5.0 .. " we are using."
This is Lua version 5 we are using.
>
= "Pi = " .. math.pi
Pi = 3.1415926535898
>
= "Pi = " .. 3.1415927
Pi = 3.1415927
Ci-dessus, pendant la coercition,
nous n'avons pas le plein contrôle du formatage de la conversion. Pour formater
le nombre comme nous le souhaitons en chaîne de caractères nous pouvons
employer la fonction string.format()
comme dans l' exemple ci-dessous,
> = string.format("%.3f", 5.0)
5.000
>
= "Lua version " .. string.format("%.1f", 5.0)
Lua version 5.0
C'est une conversion explicite en utilisant une fonction pour convertir le nombre, plutôt que d'utiliser la coercition. Vous pouvez lire plus au sujet de la coercition des nombres dans Nombres.
Consulter les option de printf http://en.wikipedia.org/wiki/Printf pour les parametres disponibles à la commande string.format.
![]() |
|