文字列の制御に関するページ
文字列の連結
DSLuaは文字列を「"文字列1".."文字列2"」と、ピリオド2つで連結することが出来る。
print("連結".."テスト")
文字列変換
文字列以外のデータ(data)を文字列に変換する
data = 123 print("data="..tostring(data))
string関数
DSLuaにはLuaで使われているstring関数群がいくらか実装されています。
大体は他の言語で同じ仕様になっています。
詳しい仕様はこちらを参照してください。
- 文字コードを返す
string.byte(str [, i])
str……文字コードを返したい文字列を渡す
i……何文字目のコードを返すか指定する
iは省略可能。省略した場合iは1になる
iは1文字目、2文字目……とカウントする(0からではない) - 文字列を検索する
string.find(str, pattern [, init])
str……検索される文字列
pattern……パターン文字列(検索文字列)
init……検索の開始位置
initは省略可能
パターン文字列については下記参照
一致しなければnilを返す - 文字列を抜き出す
string.sub(str, i [, j])
str……抜き出すもとの文字列
i……開始位置
j……終了位置
jのみ省略可能
string.sub(str, 1, j)で先頭からj文字抜き出す
string.sub(str, -i)で後方からi文字抜き出す - 渡された文字コードの文字を返す
string.char(int1, int2, ...)
int……文字コード
文字コードは16進数値で渡す - 文字列をフォーマットする
string.format(formatstr, str)
formatstr……フォーマットの形式
str……フォーマットする文字列
C関数のprintf関数と同様のフォーマット形式を選択できる。
ただし*、l、L、n、p、h はサポートされていない(未確認)
formatstrに%qを指定することでLuaインタプリタ用の出力形式に自動で変換してくれる - 文字列の長さを返す
string.len(str)
str……長さを返す文字列 - 文字列を小文字にする
string.lower(str)
str……小文字にする文字列 - 指定した文字列を繰り返し連結する
string.rep(str, i)
str……繰り返す文字列
i……繰り返し回数
strで指定した文字列をi回連続で繰り返した文字列を返す - 文字列を大文字にする
string.upper(str)
str……大文字にする文字列string.dump() string.gmatch() string.gsub() string.match() string.reverse()
パターン文字列
パターン文字 | 意 味 |
.(ドット) | 全ての文字 |
%a | 全ての文字列? |
%c | 全ての制御文字 |
%d | 全ての数字 |
%l | 全ての小文字 |
%p | 全ての区切り記号 |
%s | 全ての空白文字 |
%u | 全ての大文字 |
%w | 全ての英数文字 |
%x | 全ての十六進数字 |
%z | 0として表現される文字 |