lua脚本分解字符串
--local str = "文字45 文字 789 文们adsd45 文字 wowo 文字 文字 wowo我们 wowo456 wiwo 465我们 456sdf 45 45我们adsd45"
local s1="温馨提醒:现在离2010汇锦集团表面处理技术研讨会还有1天,报到时间为6报月19日14:00-20:00:who are you"--模板
--local s2="一aA 馨提醒二b B文字b abc文字 "
--local s2="一aA 馨提醒二b B文字b ab现在离2010汇锦集团表面处理技术研c文字 "
--local s2="一aA 馨提醒二b B文字b ab现在离2010汇锦集团表面处理技术研c文字6报月19日14:00-20:00:who are yo "
local s2="温馨理技术研讨时间为6报月19日14:00-20:00:B文字b are you提醒:现在离2010汇锦集团表会还有1天,报到面处"
--myTable=setmetatable({a1="ss"},{key2="value2"},{a1="sdd"})
local pointer=0
--local slen=string.len(str)
--print(slen)
local pos=1;
local myTable={}
local myTable1={}
local sName=""
local function Put(myT,sName) --添加内容到table中统计字符出现的个数
local i=1
if(myT[sName]~=nil) then
myT[sName]=i+1
else
myT[sName]=i
end
--print(sName..":"..myT[sName])
end
local function CompareString(str,myT) --分解字符串
local slen=string.len(str)
local m=1;
while(true)
do
if(m>slen) then
if(pos<=m-1) then
--print(m .. ":" ..string.sub(str,pos,m-1))
sName=string.sub(str,pos,m-1)
Put(myT,sName)
end
--print("m" .. ":" .. m)
break
end
local bi=string.byte(str,m,m)
if(bi>127) then
if(pos<=m-1) then --7<=10
--print(m .. ":" .. string.sub(str,pos,m-1)) --11:7-9
sName=string.sub(str,pos,m-1)
Put(myT,sName)
end
--print(m .. ":" .. string.sub(str,m,m+1)) --6 4-7
sName=string.sub(str,m,m+1)
Put(myT,sName)
pos=m+2 --pos=6
m=m+2 --m=8
elseif(bi==32) then
if(pos<=m-1) then --6<=8
--print(m .. ":" .. string.sub(str,pos,m-1))--9: 6-8
sName=string.sub(str,pos,m-1)
Put(myT,sName)
end
pos=m+1 --pos=7
m=m+1 --m=10
else
m=m+1 --m=11
end
--local sss=string1..m
--local sssss=string.gsub("myTable.sss","sss",sss,3)
--myTable[sName]="1"
--sssss=sName
end
end
CompareString(s1,myTable)
CompareString(s2,myTable1)
-- 输出计算结果
local molecule=0
local Denominator1=0
local Denominator2=0
--print("-----------------------------------------------")
for key, value in pairs(myTable) do
--print(key,value)
--print(myTable[key])
--print(myTable1[key])
if(myTable1[key]==nil) then
else
molecule=molecule+myTable[key]*myTable1[key]
end
Denominator1=Denominator1+math.pow(myTable[key],2)
end
--print("-----------------------------------------------")
for key1,value1 in pairs(myTable1) do
--print(key1,value1)
Denominator2=Denominator2+math.pow(myTable1[key1],2)
end
--print("---------------------")
--print(molecule) --18
--print(math.sqrt(Denominator1)) --6.77
--print(math.sqrt(Denominator2)) --6
local q1=math.sqrt(Denominator1)
local q2=math.sqrt(Denominator2)
local sum= molecule/(math.sqrt(Denominator1)*math.sqrt(Denominator2))
redis.call("SET", "Id", sum)
return redis.call("GET", "Id")
--return molecule
-- 使用 .. 进行字符串连接
--[[myTables=setmetatable({1,2,3},{
_add=function(myTables,newtable)
for i=1,table_maxn(newtable) do
table.insert(myTables,table_maxn(myTables)+1,newtable[i])
end
return myTables
end
})
secondtable={4,5,6}
myTables=myTables+secondtable
for k,v in ipairs(myTables) do
print(k,v)
end
--]]
--[[for key,value in pairs(myTable) do
print(key,value)
end --]]
--print(myTable["文"])
lua脚本分解字符串的更多相关文章
- lua脚本中字符串分割split
function split( s, c ) for item in string.gmatch( s, "(.-)"..c) do print(item); end end s ...
- uLua学习之读取外部Lua脚本(四)
前言 上节说到了Lua脚本与unity3d中C#脚本的数据交互,但是我感觉上节中的数理方式不太好,因为我们是把Lua脚本以字符串形式粘贴到C#脚本中的,如果读取配置数据都这样做的话,那就太可怕了.想想 ...
- SpringBoot + Redis 执行lua脚本
1.背景 有时候,我们需要一次性操作多个 Redis 命令,但是 这样的多个操作不具备原子性,而且 Redis 的事务也不够强大,不支持事务的回滚,还无法实现命令之间的逻辑关系计算.所以,一般在开发中 ...
- 快速入门Redis调用Lua脚本及使用场景介绍
Redis 是一种非常流行的内存数据库,常用于数据缓存与高频数据存储.大多数开发人员可能听说过redis可以运行 Lua 脚本,但是可能不知道redis在什么情况下需要使用到Lua脚本. 一.阅读本文 ...
- 在redis中使用lua脚本让你的灵活性提高5个逼格
在redis的官网上洋洋洒洒的大概提供了200多个命令,貌似看起来很多,但是这些都是别人预先给你定义好的,但你却不能按照自己的意图进行定制, 所以是不是感觉自己还是有一种被束缚的感觉,有这个感觉就对了 ...
- 在lua脚本中使用我们自定义的精灵类
首先创建cocos2dx-lua项目,然后在项目中添加我们的自定义精灵类:这里Himi类名为:HSprite // // HSprite.h // cocos2dx_lua_tests_by_Himi ...
- 第二十三篇:在SOUI中使用LUA脚本开发界面
像写网页一样做客户端界面可能是很多客户端开发的理想. 做好一个可以实现和用户交互的动态网页应该包含两个部分:使用html做网页的布局,使用脚本如vbscript,javascript做用户交互的逻辑. ...
- Lua脚本之语法基础快速入门
要 1.基本数据类型 2.Lua中的常用语句结构以及函数 3.Lua中的常用语句结构介绍 4.Lua中的库函数 目录[-] 一.基本数据类型 二.Lua中的常用语句结构以及函数 1.Lua中的常用语句 ...
- Win32下 Qt与Lua交互使用(四):在Lua脚本中自由执行Qt类中的函数
话接上篇.通过前几篇博客,我们实现在Lua脚本中执行Qt类中函数的方法,以及在Lua脚本中连接Qt对象的信号与槽. 但是,我们也能发现,如果希望在Lua脚本中执行Qt类的函数,就必须绑定一个真正实现功 ...
随机推荐
- tomcat安装分享
安装Tomcat前需要安装JDK 安装的jdk1.8 解压 在vim /etc/profile下面添加以下内容 export JAVA_HOME=/jdk/jdk1.8.0_111export ...
- vmware 15安装centos 7.6
环境: Vmware 15 centos 7.6.1810(CentOS-7-x86_64-DVD-1810.iso) centos:centos是linux发行版之一,开源,免费,安装的iso可以向 ...
- 浅谈XML涉及到的常见技术(编写+解析)
xml:即可扩展标记语言,用于描述关系型数据,也经常用作软件的配置文件: 1,编写xml文档一般基于一个约束文档,该文档用于规定xml的书写规范,常用的约束技术有 (1)XML ...
- ls命令输出文件的绝对路径
find $PWD | xargs ls -ld 再结合 grep 筛选
- JVM(1)之 JAVA栈
开发十年,就只剩下这套架构体系了! >>> 若想使自己编写的Java程序高效运行,以及进行正确.高效的异常诊断,JVM是不得不谈的一个话题.本"JVM进阶"专 ...
- Java 8实战之读书笔记三:函数式数据处理
二.函数式数据处理 第4章 引入流 流是Java API的新成员,它允许你以声明性方式处理数据集合(通过查询语句来表达,而不是临时编写一个实现). 示例: import static java.uti ...
- spring(二):bean的生命周期
bean的生命周期指的是bean的创建——>初始化——>销毁的过程,该过程是由spring容器进行管理的 我们可以自定义bean初始化和销毁的方法:容器在bean进行到当前生命周期时,调用 ...
- python 类的私有属性和方法 (转载)
转载:http://www.runoob.com/python/python-object.html 类属性与方法 类的私有属性 __private_attrs:两个下划线开头,声明该属性为私有,不能 ...
- 前端JSON添加
一. var _params={ "name": name, "sex": sex } //循环动态添加 for(v ...
- zabbix入门之添加主机
添加主机的方法有两种:手动添加.自动发现 前提是:在被监控主机中安装zabbix-agent.zabbix-sender组件,并配置好启动服务. 手动添加: 自动发现: 这里等待1分钟左右即可发现主机 ...