文字列制御

Last-modified: 2011-06-19 (日) 19:16:58

文字列の制御に関するページ

文字列の連結

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……大文字にする文字列
     
    以下Luaに標準で実装されているが、DSLuaで未確認なもの。
    string.dump()
    string.gmatch()
    string.gsub()
    string.match()
    string.reverse()

パターン文字列

パターン文字意  味
.(ドット)全ての文字
%a全ての文字列?
%c全ての制御文字
%d全ての数字
%l全ての小文字
%p全ての区切り記号
%s全ての空白文字
%u全ての大文字
%w全ての英数文字
%x全ての十六進数字
%z0として表現される文字
 

コメント

  • 文字→数字はどうする? -- あーる? 2011-06-19 (日) 19:16:07
  • 文字→数字はどうする? -- あーる? 2011-06-19 (日) 19:16:58