Учебники

Луа — Струны

Строка — это последовательность символов, а также управляющие символы, такие как подача формы. Строка может быть инициализирована с тремя формами, которая включает в себя —

  • Символы между одинарными кавычками
  • Символы между двойными кавычками
  • Символы между [[и]]

Пример вышеупомянутых трех форм показан ниже.

Live Demo

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-последовательности используются в строке для изменения обычной интерпретации символов. Например, чтобы напечатать двойные кавычки («»), мы использовали \ «в приведенном выше примере. Экранирующая последовательность и ее использование перечислены ниже в таблице.

Последовательность побега использование
\ а колокол
\ б возврат на одну позицию
\ е Под.стр
\ п Новая линия
Возврат каретки
\ т табуляция
\ v Вертикальная вкладка
\\ бэкслэш
Двойные кавычки
Одинарные кавычки
\ [ Левая квадратная скобка
\] Правая квадратная скобка

Манипуляция строк

Lua поддерживает строку для работы со строками —

Sr.No. Метод и цель
1

string.upper (аргумент)

Возвращает заглавное представление аргумента.

2

string.lower (аргумент)

Возвращает строчное представление аргумента.

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) и string.byte (arg)

Возвращает внутренние числовые и символьные представления входного аргумента.

8

string.len (Arg)

Возвращает длину переданной строки.

9

string.rep (string, n))

Возвращает строку, повторяя одну и ту же строку n раз.

10

..

Таким образом, оператор объединяет две строки.

string.upper (аргумент)

Возвращает заглавное представление аргумента.

string.lower (аргумент)

Возвращает строчное представление аргумента.

string.gsub (mainString, FindString, replaceString)

Возвращает строку путем замены вхождений findString на replaceString.

string.find (mainString, FindString,

optionalStartIndex, optionalEndIndex)

Возвращает начальный индекс и конечный индекс findString в основной строке и nil, если не найден.

string.reverse (Arg)

Возвращает строку путем обращения символов переданной строки.

String.Format (…)

Возвращает отформатированную строку.

string.char (arg) и string.byte (arg)

Возвращает внутренние числовые и символьные представления входного аргумента.

string.len (Arg)

Возвращает длину переданной строки.

string.rep (string, n))

Возвращает строку, повторяя одну и ту же строку n раз.

..

Таким образом, оператор объединяет две строки.

Теперь давайте рассмотрим несколько примеров, чтобы точно увидеть, как ведут себя эти функции манипуляции со строками.

Манипуляция делами

Пример кода для управления строками в верхнем и нижнем регистре приведен ниже.

Live Demo

string1 = "Lua";

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

Когда мы запустим вышеуказанную программу, мы получим следующий вывод.

LUA
lua

Замена подстроки

Пример кода для замены вхождений одной строки другой приведен ниже.

Live Demo

string = "Lua Tutorial"

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

Когда мы запустим вышеуказанную программу, мы получим следующий вывод.

The new string is Lua Language

Нахождение и Реверс

Пример кода для поиска индекса подстроки и обратной строки приведен ниже.

Live Demo

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 для форматирования вывода, как показано ниже.

Live Demo

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

Символьные и байтовые представления

Пример кода для символьного и байтового представления, который используется для преобразования строки из строки во внутреннее представление и наоборот.

Live Demo

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

Другие общие функции

Обычные манипуляции со строками включают в себя конкатенацию строк, определение длины строки и время от времени повторение одной и той же строки несколько раз. Пример для этих операций приведен ниже.

Live Demo

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)

Когда мы запустим вышеуказанную программу, мы получим следующий вывод.