Lua编程笔录--Lua初识及语法三(运算符和字符串)

来源:互联网 发布:数控30倒角怎么编程 编辑:程序博客网 时间:2024/06/01 07:36

前言:前面的知识点可以参考 

Lua编程笔录--Lua初识及语法一(注释,变量命名,全局/局部变量,数据类型)

Lua编程笔录--Lua初识及语法二(循环,流程控制,函数)


算术运算符

下表列出了 Lua 语言中的常用算术运算符,设定 A 的值为10,B 的值为 20:

操作符描述实例+加法A + B 输出结果 30-减法A - B 输出结果 -10*乘法A * B 输出结果 200/除法B / A w输出结果 2%取余B % A 输出结果 0^乘幂A^2 输出结果 100-负号-A 输出结果v -10




关系运算符

下表列出了 Lua 语言中的常用关系运算符,设定 A 的值为10,B 的值为 20:

操作符描述实例==等于,检测两个值是否相等,相等返回 true,否则返回 false(A == B) 为 false。~=不等于,检测两个值是否相等,相等返回 false,否则返回 true<(A ~= B) 为 true。>大于,如果左边的值大于右边的值,返回 true,否则返回 false(A > B) 为 false。<小于,如果左边的值大于右边的值,返回 false,否则返回 true(A < B) 为 true。>=大于等于,如果左边的值大于等于右边的值,返回 true,否则返回 false(A >= B) 返回 false。<=小于等于, 如果左边的值小于等于右边的值,返回 true,否则返回 false(A <= B) 返回 true。




逻辑运算符

下表列出了 Lua 语言中的常用逻辑运算符,设定 A 的值为 true,B 的值为 false:

操作符描述实例and逻辑与操作符。 如果两边的操作都为 true 则条件为 true。(A and B) 为 false。or逻辑或操作符。 如果两边的操作任一一个为 true 则条件为 true。(A or B) 为 true。not逻辑非操作符。与逻辑运算结果相反,如果条件为 true,逻辑非为 false。not(A and B) 为 true。



其他运算符

下表列出了 Lua 语言中的连接运算符与计算表或字符串长度的运算符:

操作符描述实例..连接两个字符串a..b ,其中 a 为 "Hello " , b 为 "World", 输出结果为 "Hello World"。#一元运算符,返回字符串或表的长度。#"Hello" 返回 5




运算符优先级

从高到低的顺序:

^not    - (unary)*      /+      -..<      >      <=     >=     ~=     ==andor






Lua 字符串

字符串或串(String)是由数字、字母、下划线组成的一串字符。

Lua 语言中字符串可以使用以下三种方式来表示:

  • 单引号间的一串字符。
  • 双引号间的一串字符。
  • [[和]]间的一串字符。

以上三种方式的字符串实例如下:

string1 = "Lua"print("\"字符串 1 是\"",string1)string2 = 'w3cschool.cc'print("字符串 2 是",string2)string3 = [["Lua 教程"]]print("字符串 3 是",string3)

转义字符用于表示不能直接显示的字符,比如后退键,回车键,等。如在字符串转换双引号可以使用 "\""。

所有的转义字符和所对应的意义:

转义字符
意义
ASCII码值(十进制)
\a
响铃(BEL)
007
\b
退格(BS) ,将当前位置移到前一列
008
\f
换页(FF),将当前位置移到下页开头
012
\n
换行(LF) ,将当前位置移到下一行开头
010
\r
回车(CR) ,将当前位置移到本行开头
013
\t
水平制表(HT) (跳到下一个TAB位置)
009
\v
垂直制表(VT)
011
\\
代表一个反斜线字符''\'
092
\'
代表一个单引号(撇号)字符
039
\"
代表一个双引号字符
034
\0
空字符(NULL)
000
\ddd
1到3位八进制数所代表的任意字符
三位八进制
\xhh
1到2位十六进制所代表的任意字符
二位十六进制

字符串大小写转换

以下实例演示了如何对字符串大小写进行转换:

string1 = "Lua";print(string.upper(string1))print(string.lower(string1))

以上代码执行结果为:

LUAlua

字符串查找与反转

以下实例演示了如何对字符串进行查找与反转操作:

string = "Lua Tutorial"-- 查找字符串print(string.find(string,"Tutorial"))reversedString = string.reverse(string)print("新字符串为",reversedString)

以上代码执行结果为:

512新字符串为lairotuT auL

字符串格式化

以下实例演示了如何对字符串进行格式化操作:

string1 = "Lua"string2 = "Tutorial"number1 = 10number2 = 20-- 基本字符串格式化print(string.format("基本格式化 %s %s",string1,string2))-- 日期格式化date = 2; month = 1; year = 2014print(string.format("日期格式化 %02d/%02d/%03d", date, month, year))-- 十进制格式化print(string.format("%.4f",1/3))

以上代码执行结果为:

基本格式化 Lua Tutorial日期格式化 02/01/20140.3333

字符与整数相互转换

以下实例演示了字符与整数相互转换:

-- 字符转换-- 转换第一个字符print(string.byte("Lua"))-- 转换第三个字符print(string.byte("Lua",3))-- 转换末尾第一个字符print(string.byte("Lua",-1))-- 第二个字符print(string.byte("Lua",2))-- 转换末尾第二个字符print(string.byte("Lua",-2))-- 整数 ASCII 码转换为字符print(string.char(97))

以上代码执行结果为:

769797117117a

其他常用函数

以下实例演示了其他字符串操作,如计算字符串长度,字符串连接,字符串复制等:

string1 = "www."string2 = "w3cschool"string3 = ".cc"-- 使用 .. 进行字符串连接print("连接字符串",string1..string2..string3)-- 字符串长度print("字符串长度 ",string.len(string2))-- 字符串复制 2 repeatedString = string.rep(string2,2)print(repeatedString)

以上代码执行结果为:

连接字符串www.w3cschool.cc字符串长度 9w3cschoolw3cschool


0 0
原创粉丝点击