--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脚本分解字符串的更多相关文章

  1. lua脚本中字符串分割split

    function split( s, c ) for item in string.gmatch( s, "(.-)"..c) do print(item); end end s ...

  2. uLua学习之读取外部Lua脚本(四)

    前言 上节说到了Lua脚本与unity3d中C#脚本的数据交互,但是我感觉上节中的数理方式不太好,因为我们是把Lua脚本以字符串形式粘贴到C#脚本中的,如果读取配置数据都这样做的话,那就太可怕了.想想 ...

  3. SpringBoot + Redis 执行lua脚本

    1.背景 有时候,我们需要一次性操作多个 Redis 命令,但是 这样的多个操作不具备原子性,而且 Redis 的事务也不够强大,不支持事务的回滚,还无法实现命令之间的逻辑关系计算.所以,一般在开发中 ...

  4. 快速入门Redis调用Lua脚本及使用场景介绍

    Redis 是一种非常流行的内存数据库,常用于数据缓存与高频数据存储.大多数开发人员可能听说过redis可以运行 Lua 脚本,但是可能不知道redis在什么情况下需要使用到Lua脚本. 一.阅读本文 ...

  5. 在redis中使用lua脚本让你的灵活性提高5个逼格

    在redis的官网上洋洋洒洒的大概提供了200多个命令,貌似看起来很多,但是这些都是别人预先给你定义好的,但你却不能按照自己的意图进行定制, 所以是不是感觉自己还是有一种被束缚的感觉,有这个感觉就对了 ...

  6. 在lua脚本中使用我们自定义的精灵类

    首先创建cocos2dx-lua项目,然后在项目中添加我们的自定义精灵类:这里Himi类名为:HSprite // // HSprite.h // cocos2dx_lua_tests_by_Himi ...

  7. 第二十三篇:在SOUI中使用LUA脚本开发界面

    像写网页一样做客户端界面可能是很多客户端开发的理想. 做好一个可以实现和用户交互的动态网页应该包含两个部分:使用html做网页的布局,使用脚本如vbscript,javascript做用户交互的逻辑. ...

  8. Lua脚本之语法基础快速入门

    要 1.基本数据类型 2.Lua中的常用语句结构以及函数 3.Lua中的常用语句结构介绍 4.Lua中的库函数 目录[-] 一.基本数据类型 二.Lua中的常用语句结构以及函数 1.Lua中的常用语句 ...

  9. Win32下 Qt与Lua交互使用(四):在Lua脚本中自由执行Qt类中的函数

    话接上篇.通过前几篇博客,我们实现在Lua脚本中执行Qt类中函数的方法,以及在Lua脚本中连接Qt对象的信号与槽. 但是,我们也能发现,如果希望在Lua脚本中执行Qt类的函数,就必须绑定一个真正实现功 ...

随机推荐

  1. 复制书稿 (dp+贪心)

    [题目描述] 现在要把m本有顺序的书分给k个人复制(抄写),每一个人的抄写速度都一样,一本书不允许给两个(或以上)的人抄写,分给每一个人的书,必须是连续的,比如不能把第一.第三和第四本书给同一个人抄写 ...

  2. Oracle 汉字占用字节数

    在oracle中一个字符特别是中文字符占几个字节是与字符集有关的.      比如GBK,汉字就会占两个字节,英文1个:如果是UTF-8,汉字一般占3个字节,英文还是1个.但是一般情况下,我们都认为是 ...

  3. shell脚本从入门到精通(初级)之入门篇

    写在开头 本文是阅读<Linux命令行与shell脚本编程大全>时的一些笔记,主要是shell脚本的一些基本语法, 还有很多细节和高级内容没有写到. 笔者也是shell script菜鸟, ...

  4. 【问题解决方案】在某个文件夹下打开命令提示符或Git Bash

    参考链接: 百度知道:怎么在某个文件夹下打开命令提示符 问题: 当文件夹比较深时,一直cd进入文件夹内部就显得非常迟缓了. 解决: cmd:打开所需文件夹路径后,在上面的路径显示框中输入CMD,然后回 ...

  5. 【问题解决方案】GitHub仓库重构之将某个或某些文件夹移动到其他文件夹内

    仓库重构时遇到的问题,在GitHub页面里好像没有类似的操作按钮? 搜了一下好像要用到一些命令比如rm等,但是我对Linux类的命令不是很熟悉 于是想试试曲线救国,先把远程库的文件pull到本地,在本 ...

  6. JSON对象与JavaScript对象的区别

    //js对象的字面量表示法: var people1={ name:'hehe', age:18 }; //json的格式是: var people1={ "name":'hehe ...

  7. rabbitmq windows安装 及 centos安装

     windows安装如下: 安装方法如下网址: https://baijiahao.baidu.com/s?id=1605656085633071281&wfr=spider&for= ...

  8. 64-基于TMS320C6455、XC5VSX95T 的6U CPCI无线通信处理平台

    基于TMS320C6455.XC5VSX95T 的6U CPCI无线通信处理平台   1. 板卡概述 本板卡由我公司自主研发,基于CPCI架构,符合PICMG2.0 D3.0标准,包含双TI TMS3 ...

  9. Git命令<转载 https://www.cnblogs.com/cspku/articles/Git_cmds.html>

    查看.添加.提交.删除.找回,重置修改文件 git help <command> # 显示command的help git show # 显示某次提交的内容 git show $id gi ...

  10. orcad原理图与PSPICE模型库名称

    Vendor PSpice Model Description Advanced Linear Devices adv_lin.lib Library of op-amps Advanced Line ...