Lua-strings

提供:Dev Guides
移動先:案内検索

ルア-文字列

文字列は、一連の文字とフォームフィードのような制御文字です。 文字列は、次の3つの形式で初期化できます-

  • 単一引用符の間の文字
  • 二重引用符の間の文字 *の間の文字

上記の3つのフォームの例を以下に示します。

string1 = "Lua"
print("\"String 1 is\"",string1)

string2 = 'Tutorial'
print("String 2 is",string2)

string3 = [[Lua Tutorial"]]
print("String 3 is",string3)

上記のプログラムを実行すると、次の出力が得られます。

"String 1 is"   Lua
String 2 is Tutorial
String 3 is "Lua Tutorial"

文字列のエスケープシーケンス文字は、文字の通常の解釈を変更するために使用されます。 たとえば、二重反転コンマ( "")を印刷するには、上記の例で\ "を使用しました。 エスケープシーケンスとその使用法を以下の表にリストします。

Escape Sequence Use
\a Bell
\b Backspace
\f Formfeed
\n New line
\r Carriage return
\t Tab
\v Vertical tab
\\ Backslash
\" Double quotes
\' Single quotes
\[ Left square bracket
\] Right square bracket

文字列操作

Luaは文字列を操作する文字列をサポートしています-

Sr.No. Method & Purpose
1
  • string.upper(argument)*

引数の大文字表記を返します。

2

string.lower(argument)

引数の小文字表現を返します。

3

string.gsub(mainString,findString,replaceString)

findStringの出現箇所をreplaceStringに置き換えて文字列を返します。

4

string.find(mainString,findString,

  • optionalStartIndex、optionalEndIndex) *

メイン文字列のfindStringの開始インデックスと終了インデックスを返し、見つからない場合はnilを返します。

5
  • string.reverse(arg)*

渡された文字列の文字を逆にして文字列を返します。

6

string.format(…​)

フォーマットされた文字列を返します。

7

string.char(arg) and string.byte(arg)

入力引数の内部数値および文字表現を返します。

8

string.len(arg)

渡された文字列の長さを返します。

9

string.rep(string, n))

同じ文字列をn回繰り返して文字列を返します。

10

.. ..

したがって、演算子は2つの文字列を連結します。

それでは、これらの文字列操作関数の動作を正確に確認するために、いくつかの例を見てみましょう。

ケース操作

文字列を大文字と小文字に変換するためのサンプルコードを以下に示します。

string1 = "Lua";

print(string.upper(string1))
print(string.lower(string1))

上記のプログラムを実行すると、次の出力が得られます。

LUA
lua

部分文字列の置換

ある文字列の出現を別の文字列で置換するためのサンプルコードを以下に示します。

string = "Lua Tutorial"

-- replacing strings
newstring = string.gsub(string,"Tutorial","Language")
print("The new string is "..newstring)

上記のプログラムを実行すると、次の出力が得られます。

The new string is Lua Language

検索と反転

サブストリングのインデックスを検索し、ストリングを反転するためのサンプルコードを以下に示します。

string = "Lua Tutorial"

-- replacing strings
print(string.find(string,"Tutorial"))
reversedString = string.reverse(string)
print("The new string is",reversedString)

上記のプログラムを実行すると、次の出力が得られます。

5   12
The new string is   lairotuT auL

文字列のフォーマット

私たちのプログラミングでは何度も、フォーマットされた方法で文字列を印刷する必要があります。 string.format関数を使用して、以下に示すように出力をフォーマットできます。

string1 = "Lua"
string2 = "Tutorial"

number1 = 10
number2 = 20

-- Basic string formatting
print(string.format("Basic formatting %s %s",string1,string2))

-- Date formatting
date = 2; month = 1; year = 2014
print(string.format("Date formatting %02d/%02d/%03d", date, month, year))

-- Decimal formatting
print(string.format("%.4f",1/3))

上記のプログラムを実行すると、次の出力が得られます。

Basic formatting Lua Tutorial
Date formatting 02/01/2014
0.3333

文字とバイトの表現

文字列から内部表現へ、またはその逆への変換に使用される文字およびバイト表現のサンプルコード。

-- Byte conversion

-- First character
print(string.byte("Lua"))

-- Third character
print(string.byte("Lua",3))

-- first character from last
print(string.byte("Lua",-1))

-- Second character
print(string.byte("Lua",2))

-- Second character from last
print(string.byte("Lua",-2))

-- Internal Numeric ASCII Conversion
print(string.char(97))

上記のプログラムを実行すると、次の出力が得られます。

76
97
97
117
117
a

その他の一般的な機能

一般的な文字列操作には、文字列の連結、文字列の長さの検索、および同じ文字列を複数回繰り返すことが含まれます。 これらの操作の例を以下に示します。

string1 = "Lua"
string2 = "Tutorial"

-- String Concatenations using ..
print("Concatenated string",string1..string2)

-- Length of string
print("Length of string1 is ",string.len(string1))

-- Repeating strings
repeatedString = string.rep(string1,3)
print(repeatedString)

上記のプログラムを実行すると、次の出力が得られます。

Concatenated string LuaTutorial
Length of string1 is    3
LuaLuaLua