当前位置:网站首页>String - string (Lua)

String - string (Lua)

2022-07-07 19:17:00 Just be interesting

character string

string yes Lua One of the eight major data types in ,Lua There is no concept of characters in , All texts are string.Lua Medium string In order to 8 A bit To store .

Lua The strings in are the same as most language strings Not variable . All changes string The operation of , All generate new string.Lua in string The data structure uses the string pool realized by hash algorithm . This approach is to ensure that memory does not leak , And the performance of string comparison is greatly improved .


Representation
string There are two ways to express

  • ’ Single quotation marks Such as 's'
  • " Double quotes Such as "s"

They are all ways of representing string constants , It is recommended to use one , Don't mix .


Long string
string have access to [[ ]] In this way Writing of multi president strings
Such as

local s = [[ L u a]]

Escape character

Escape character significance ASCII Code value ( Decimal system )
\a Ring the bell (BEL)007
\b Backspace (BS) , Move the current position to the previous column 008
\f Change the page (FF), Move the current position to the beginning of the next page 012
\n Line break (LF) , Moves the current position to the beginning of the next line 010
\r enter (CR) , Move the current position to the beginning of the line 013
\t Horizontal TAB (HT) ( Skip to the next TAB Location )009
\v Vertical tabulation (VT)011
\ Represents a backslash character ’‘’092
Represents a single quotation mark ( apostrophe ) character 039
" Represents a double quote character 034
\0 Null character (NULL)000
\ddd1 To 3 Any character represented by an octal number Three octal
\xhh1 To 2 Any character represented by hexadecimal digits Binary hexadecimal

Common functions ( String standard library )

..: Link two strings ( It's equivalent to... In other languages + Symbol , Connect the two strings to generate a new string )

string.upper: All strings are converted to Capital .
string.lower: All strings are converted to Lowercase letters .

string.gusb: In the string Replace .

string.reverse: character string reverse

string.find: Find substring , Return the start index and end index of this substring ( You can use pattern matching )

string:rep: Return string string Of n A copy

string.char: char take Convert integer numbers to characters And connect
string.byte: byte transformation Characters are integer values

string.len: Calculate string length ( You can also use #)

string.sub: Intercepting string

string.gmatch: Return to one iterator function , Every time this function is called , Returns a string in str The next one found matches pattern Substring of description . If parameters pattern Description string not found , The iteration function returns nil.( Pattern matching )

string.match: Just look for the source string str The first pairing in . Parameters init Optional , Specify the starting point of the search process , The default is 1.
On successful pairing , The function returns all capture results in the pairing expression ; If the capture flag is not set , Returns the entire pairing string . When there is no successful pairing , return nil.( Pattern matching )

Lua String pattern matching in supports regular expressions ( Incomplete support ). See the official documents for details

See the official documents for specific use


UTF - 8 code
Lua It's supporting UTF-8 Of , It also provides some library functions for processing (Lua5.3).

local s = "Lua Language "

-- We need to intercept the next two Chinese characters , The method is as follows 
local s1 = s:sub(utf8.offset(s, -2) -- Language 

-- get UTF-8 Code length 
local len = utf8.len(s) --5

-- Traverse UTF-8 Encode the characters in the string 
for p, c in utf8.codes(s) do --p Is in the string s The location of , c yes utf8 Coded character encoding ( Can convert )
	print(utf8.char(c))
end

Lua Also available utf8.char and utf8.codepoint Two processing functions, character encoding conversion to string and string conversion to number
This is related to string Of string.char and string.byte similar


Cast

In the use of Arithmetic operator when , If the operation is a string ,Lua Will try to string Type changed to Floating point numbers .

print("2" * 2) --4.0
print("2" * "2") --4.0

Empathy , Using a string Connector .., If the operation is number,Lua Will try to number The type will be converted to character string

print("20" .. 22) --2022
print(20 .. 22) --2022

Thank you for watching

原网站

版权声明
本文为[Just be interesting]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/188/202207071515232812.html