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类的函数,就必须绑定一个真正实现功 ...
随机推荐
- 【洛谷新手村】简单字符串 p1055 ISBN号码
p1055 ISBN号码[传送门] 算法标签什么的: 思路:直接以字符串的形式读入这一串数字,然后for循环对字符串进行处理,字符串中的数字存进数组中(如果是X,存为10):然后再根据要求判断是否是正 ...
- cdn.bootcss.com无法访问 解决方法
今天angularjs的网站突然加载报错,提示Refused to execute script from 'https://cdnjs.com/' because its MIME type ('t ...
- C#设计模式:组合模式(Composite Pattern)
一,C#设计模式:组合模式(Composite Pattern) using System; using System.Collections.Generic; using System.Linq; ...
- CSS中quotes属性以及content的open(close)-quotes属性
定义和用法 quotes 属性设置嵌套引用(embedded quotation)的引号类型. 可能的值 值 描述 none 规定 "content" 属性的 "open ...
- Linux知识-不断更新2
为了自己看的更清楚,也为了不断的总结,每次更新后都会另发一篇. 工作中遇到某一文件夹磁盘空间不够,当然每次都是清理日志,最后发现还是不太行,还不能扩容,只能先想办法迁移目录,避免此问题发生,但在这之前 ...
- 233-基于TMS320C6678+XC7K325T的CPCIe开发平台
基于TMS320C6678+XC7K325T的CPCIe开发平台 一.板卡概述 该DSP+FPGA高速信号采集处理板由我公司自主研发,包含一片TI DSP TMS320C6678和一片 ...
- python集合set,交集,并集,差集,对称差集,子集和超集
python集合set,交集,并集,差集,对称差集,子集和超集 x = {1, 2, 3, 4} y = {2, 4, 5, 6} # 交集(取x中与y中相同部分) print(x.intersect ...
- 转载:PhpExcel使用方法
下面是总结的几个使用方法 include 'PHPExcel.php'; include 'PHPExcel/Writer/Excel2007.php'; //或者include 'PHPExcel/ ...
- HTML基础用 表格做报表
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 公私钥,数字证书,https
1.密钥对,在非对称加密技术中,有两种密钥,分为私钥和公钥,私钥是密钥对所有者持有,不可公布,公钥是密钥对持有者公布给他人的. 2.公钥,公钥用来给数据加密,用公钥加密的数据只能使用私钥解密. 3.私 ...