Lua - строки

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

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

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

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

Последовательность побега Использовать
\ а Колокол
\ b Backspace
\ f Formfeed
\ п Новая линия
Возврат каретки
\ т Вкладка
\ v Вертикальная табуляция
\\ Обратная косая черта
\ " Двойные кавычки
\ ' Одинарные кавычки
\ [ Левая квадратная скобка
\] Правая квадратная скобка

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

Lua поддерживает строку для управления строками -

Sr. No. Метод и цель
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

..

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

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

Обработка случаев

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

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