Lua编程示例(四):Lua标准库之表库、字符串库、系统库

tb1 = { "alpha","log","gamme"}

print(table.concat(tb1," , "))
print(table.concat(tb1,"\n",nil,2))
print()

tb1[88.99] = 'aaa'
--返回索引值最大的值,并且计算小数
print(table.maxn(tb1))
print()

--默认删除索引最大的元素并返回
print(table.remove(tb1))
print()

table.insert(tb1,'3423')
table.sort(tb1)
print(table.concat(tb1," , "))
function sortFunc(a,b)
 return a>b
end
table.sort(tb1,sortFunc)
print(table.concat(tb1," , "))
print()

print(string.len(""))
print(string.len("abcd"))
print(string.sub("welcome",1,3))
print(string.sub("welcome",1,-1))
print(string.sub("welcome",1,-5))
print()

print(os.date())
print()

do
 local x = os.clock()
 local s = 0
 for i=1,100000000 do s= s+i end
 print(string.format("the passed time is %.2f\n",os.clock()-x))
end

s = "hello world"
i, j = string.find(s, "hello")
print(i, j)    --> 1  5
print(string.sub(s, i, j))  --> hello
print(string.find(s, "world"))  --> 7  11
i, j = string.find(s, "l")
print(i, j)    --> 3  3
print(string.find(s, "lll"))  --> nil

s = string.gsub("Lua is super", "is","makes")
print(s)
s = string.gsub(s,"a","X")
print(s)
s = string.gsub(s,"X","a",1)
print(s)

运行结果:

alpha , log , gamme
alpha
log

88.99

gamme

3423 , alpha , log
log , alpha , 3423

0
4
wel
welcome
wel

11/24/11 17:55:44

the passed time is 2.12

1 5
hello
7 11
3 3
nil
Lua makes super
LuX mXkes super
Lua mXkes super
(0)

相关推荐

  • Lua下基本的网络编程示例

    Lua是高度灵活的语言,它往往是在多个平台,包括Web应用程序中使用.成立2004年的Kepler社区提供Lua的Web组件开放源码. 虽然,也有使用Lua已经开发了其他的web框架,我们将主要集中在Kepler社区提供的组件. 应用程序和框架 Orbit 是一个lua的MVC Web框架,它是基于WSAPI. WSAPI是从Lua的Web应用程序抽象的Web主机服务器,是基于许多项目的API. Xavante是一个Lua的Web服务器,提供了一个WSAPI接口. Sputnik是一个wiki/

  • Lua编程示例(一):select、debug、可变参数、table操作、error

    function test_print(...) for i=1,select("#",...) do print(i,select(i,...)) end end test_print(11,12,13,14) print() print(debug.traceback()) print() function test(...) for i=1,arg.n do print(i.."\t"..arg[i]) end end test("a",2

  • Lua编程示例(三):稀疏表、双端队列、格式化输出、表和循环表的格式化输出

    a={} for i=1,10 do a[i]={} for j=0,10 do if(i%2==0) then a[i][j]=0 end end end print(a[9][10]) print(a[10][10]) print() --双端队列 List={} function List.new() return {first = 0,last = -1} end function List.pushleft(list,value) local first= list.first-1 l

  • Lua编程示例(二):面向对象、metatable对表进行扩展

    counter = { count = 0 } function counter.get(self) return self.count end function counter:inc() self.count=self.count+1 end print(counter.get(counter)) counter.inc(counter) print(counter.get(counter)) counter2={ count=4, get = counter.get, inc = coun

  • Lua编程示例(四):Lua标准库之表库、字符串库、系统库

    tb1 = { "alpha","log","gamme"} print(table.concat(tb1," , ")) print(table.concat(tb1,"\n",nil,2)) print() tb1[88.99] = 'aaa' --返回索引值最大的值,并且计算小数 print(table.maxn(tb1)) print() --默认删除索引最大的元素并返回 print(table.r

  • Lua编程示例(八):生产者-消费者问题

    这个问题是比较经典的啦,基本所有语言的多线程都会涉及到,但是没想到Lua的这个这么复杂 抓狂   看了好长时间才算看明白,先上个逻辑图: 开始时调用消费者,当消费者需要值时,再调用生产者生产值,生产者生产值后停止,直到消费者再次请求.设计为消费者驱动的设计.    图画的不太好,可以先将Filter遮住,它是过滤器对两个程序之间传递的信息进行处理.去掉Filter逻辑就更清晰些了,就是两个"线程"(其实是两个协同程序)互相调用.resume回到yield处开始,支持嵌套,返回到栈顶的y

  • Lua编程示例(六): C语言调用Lua函数

    C++端: #include "stdafx.h" lua_State *L; void load_lua(lua_State **L,char *filename){ *L=luaL_newstate(); luaL_openlibs(*L); if(luaL_loadfile(*L,filename) || lua_pcall(*L,0,0,0)){ luaL_error(*L,"load file error! %s",lua_tostring(*L,-1))

  • Lua编程示例(五): C语言对Lua表的读取和添加

    #include "stdafx.h" lua_State *L; void load_lua(char *filename){ L=luaL_newstate(); luaL_openlibs(L); if((luaL_loadfile(L,filename) || lua_pcall(L,0,0,0))!= 0){ luaL_error(L,"loadfile error! \n %s",lua_tostring(L,-1)); } } double getfi

  • Lua编程示例(七):协同程序基础逻辑

    co=coroutine.create(function() print("hi") end) print(coroutine.status(co)) coroutine.resume(co) print(coroutine.status(co)) print() co=coroutine.create(function() for i=1,2 do print("co",i) coroutine.yield() end end) coroutine.resume(

  • Java并发编程示例(四):可控的线程中断

    在上一节"线程中断"中,我们讲解了如何中断一个正在执行的线程以及为了中断线程,我们必须对Thread动点什么手脚.一般情况下,我们可以使用上一节介绍的中断机制.但是,如果线程实现了一个分配到多个方法中的复杂算法,或者方法调用中有一个递归调用,我们应该使用更好的方式来控制线程的中断.为此,Java提供了InterruptedException异常.当检测到中断请求时,可以抛出此异常,并且在run()方法中捕获. 在本节,我们将使用一个线程查找指定目录及其子目录下文件来演示通过使用Inte

随机推荐