--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. Codeforces - 1191E - Tokitsukaze and Duel - 博弈论 - 尺取

    https://codeforc.es/contest/1191/problem/E 参考自:http://www.mamicode.com/info-detail-2726030.html 和官方题 ...

  2. Service vs provider vs factory 转自:http://stackoverflow.com/questions/15666048/service-vs-provider-vs-factory

    请看此链接:http://stackoverflow.com/questions/15666048/service-vs-provider-vs-factory

  3. google+ sign in and get the oauth token 转摘:https://gist.github.com/ianbarber/5170508

    package com.example.anothersignintest;   import java.io.IOException;   import com.google.android.gms ...

  4. BUUCTF--新年快乐

    测试文件:https://buuoj.cn/files/bbf9f68a97fd551edec384914d4f3fbe/93c43c5c-3d4d-4d17-a9a1-4ffb65ebb2fb.zi ...

  5. 一键部署YApi

    编写docker-compose.yml version: '2.1' services: yapi: image: mrjin/yapi:latest # build: ./ container_n ...

  6. linux性能分析工具Top

  7. shell PATH示例

  8. vue,一路走来(8)--mint-ui的组件问题

    Mint-ui的复选框列表Checklist和Radio 由于我在main.js里已经引用了全部的组件了,这里就不再按需引入了. 一直想着如何将自己的数据添加到 label 和 value里面,后面发 ...

  9. Java使用对象类型作为方法的返回值

  10. mysql中文乱码解决办法

    Windows 在C:\Program Files\MySQL\MySQL Server 5.5\bin目录下 MySQLInstanceConfig.exe执行 重新配置character_set_ ...