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