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