Lua - Dizeler

Dize, bir karakter dizisinin yanı sıra form beslemesi gibi kontrol karakterleridir. Dize aşağıdakileri içeren üç formla başlatılabilir:

  • Tek tırnaklar arasındaki karakterler
  • Çift tırnak arasındaki karakterler
  • [[İle]] arasındaki karakterler

Yukarıdaki üç form için bir örnek aşağıda gösterilmiştir.

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

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

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

Yukarıdaki programı çalıştırdığımızda aşağıdaki çıktıyı alacağız.

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

Karakterlerin normal yorumunu değiştirmek için dizede kaçış dizisi karakterleri kullanılır. Örneğin, çift ters virgül ("") yazdırmak için yukarıdaki örnekte \ "kullandık. Kaçış dizisi ve kullanımı aşağıdaki tabloda listelenmiştir.

Kaçış dizisi Kullanım
\ a Çan
\ b Geri tuşu
\ f Form besleme
\ n Yeni hat
\ r Satırbaşı
\ t Sekme
\ v Dikey sekme
\\ Ters eğik çizgi
\ " İkili alıntı
\ ' Tek tırnak
\ [ Sol köşeli ayraç
\] Sağ köşeli ayraç

Dize Manipülasyonu

Lua, dizeleri işlemek için dizeyi destekler -

Sr.No. Yöntem ve Amaç
1

string.upper(argument)

Bağımsız değişkenin büyük harfle yazılmış bir temsilini döndürür.

2

string.lower(argument)

Bağımsız değişkenin küçük harfli temsilini döndürür.

3

string.gsub(mainString,findString,replaceString)

FindString oluşumlarını replaceString ile değiştirerek bir dize döndürür.

4

string.find(mainString,findString,

optionalStartIndex,optionalEndIndex)

Ana dizede findString'in başlangıç ​​dizinini ve bitiş dizinini, bulunamazsa nil'i döndürür.

5

string.reverse(arg)

Aktarılan dizenin karakterlerini ters çevirerek bir dize döndürür.

6

string.format(...)

Biçimlendirilmiş bir dize döndürür.

7

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

Giriş bağımsız değişkeninin dahili sayısal ve karakter temsillerini döndürür.

8

string.len(arg)

Aktarılan dizenin uzunluğunu döndürür.

9

string.rep(string, n))

Aynı dizeyi n sayıda tekrarlayarak bir dize döndürür.

10

..

Böylece operatör iki dizeyi birleştirir.

Şimdi, bu dizi işleme işlevlerinin tam olarak nasıl davrandığını görmek için birkaç örneğe bakalım.

Vaka Manipülasyonu

Dizeleri büyük ve küçük harfe dönüştürmek için örnek bir kod aşağıda verilmiştir.

string1 = "Lua";

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

Yukarıdaki programı çalıştırdığımızda aşağıdaki çıktıyı alacağız.

LUA
lua

Bir Alt Dizeyi Değiştirme

Bir dizenin oluşumlarını diğeriyle değiştirmek için örnek bir kod aşağıda verilmiştir.

string = "Lua Tutorial"

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

Yukarıdaki programı çalıştırdığımızda aşağıdaki çıktıyı alacağız.

The new string is Lua Language

Bulma ve Ters Çevirme

Alt dize ve ters dize dizini bulmak için örnek bir kod aşağıda verilmiştir.

string = "Lua Tutorial"

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

Yukarıdaki programı çalıştırdığımızda aşağıdaki çıktıyı alacağız.

5	12
The new string is	lairotuT auL

Dizeleri Biçimlendirme

Programlamamızda çoğu zaman, dizeleri biçimlendirilmiş bir şekilde yazdırmamız gerekebilir. Çıktıyı aşağıda gösterildiği gibi biçimlendirmek için string.format işlevini kullanabilirsiniz.

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))

Yukarıdaki programı çalıştırdığımızda aşağıdaki çıktıyı alacağız.

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

Karakter ve Bayt Gösterimleri

Dizeyi dizeden dahili gösterime veya tam tersine dönüştürmek için kullanılan karakter ve bayt gösterimi için örnek bir kod.

-- 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))

Yukarıdaki programı çalıştırdığımızda aşağıdaki çıktıyı alacağız.

76
97
97
117
117
a

Diğer Ortak İşlevler

Yaygın dize işlemleri, dizi birleştirme, dizge uzunluğunu bulma ve bazen aynı dizeyi birden çok kez tekrarlamayı içerir. Bu işlemlere ilişkin örnek aşağıda verilmiştir.

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)

Yukarıdaki programı çalıştırdığımızda aşağıdaki çıktıyı alacağız.

Concatenated string	LuaTutorial
Length of string1 is 	3
LuaLuaLua