lua中string.find()函数作用于汉字字符串
lua中有这样一个库函数,string,find(),作用是在一个字符串中找到目标字符串的起始和结束位置(从1开始计数)
如:a,b=string.find("hello world","wo")//a==7,b==8
但是如果是这样呢:
a,b=string.find("我是大坏蛋","大坏蛋");
结果是:a=3,b=5吗?
嘿嘿,结果是a=5,=10.
原因是一个汉字使用2个字节表示的,比如“大坏蛋”即是6个字节。由于Lua使用2个字节表示一个汉字字符,所以总共可以表示出2^16=65536个汉字。这个数字已经完全够了,
1971年张其昀主编的《中文大辞典》,有49888 字,当代的《汉语大字典》(2010年版)收字60,370个,不过比起1994年中华书局、中国友谊出版公司出版的《中华字海》(收字85,568个)肯定是不够了,不过这是目前收字最多的汉语字典了。
有一点需要说明一下对于字符串"我是,大坏蛋!",里边的标点可以分为汉字标点和英文标点,汉字标点占2个字节,英文标点占1个字节。不过从观感来看,汉字标点确实比英文标点多占了一个字符位置。不过存贮中可没有存储那个多出来的空格。
lua中string.find()函数作用于汉字字符串的更多相关文章
- cocos2d-x 2.2.0 如何在lua中注册回调函数给C++
cocos2d-x内部使用tolua进行lua绑定,但是引擎并没有提供一个通用的接口让我们可以把一个lua函数注册给C++层面的回调事件.翻看引擎的lua绑定代码,我们可以仿照引擎中的方法来做.值得吐 ...
- java中string.trim()函数的使用
java中string.trim()函数的的作用是去掉字符串开头和结尾的空格,防止不必要的空格导致的错误. public static void main(String arg[]){ String ...
- Lua的string库函数、lua中string的模式匹配
--****************Lua的string库函数****************** --1.string.byte --string.byte (s [, i [, j]]) --取出 ...
- lua中调用C++函数
lua中调用C++函数 我们产品中提供了很多lua-C API给用户在lua中调用,之前一直没用深究其实现原理,只是根据已有的代码在编码.显然这不是一个好的习惯,没用达到知其所以然的目的. 一.基本原 ...
- 【转载】C#中string类使用Substring方法截取字符串
在C#的字符串操作过程中,截取字符串是一种常见的字符串操作,可使用string类的Substring方法来完成字符串的截取操作,该方法支持设定截取的开始位置以及截取的字符串长度等参数,Substrin ...
- Torch-RNN运行过程中的坑 [2](Lua的string sub函数,读取中文失败,乱码?)
0.踩坑背景 仍然是torch-rnn/LanguageModel.lua文件中的一些问题,仍然是这个狗血的LM:encode_string函数: function LM:encode_string( ...
- java中string.trim()函数的作用
trim /[trɪm] / 英文意思:整理,修理,修剪,整齐的 trim()的作用:去掉字符串首尾的空格. public static void main(String arg[]){ Strin ...
- Lua中调用C函数
Lua利用一个虚拟的堆栈来给C传递值或从C获取值.每当Lua调用C函数,都会获得一个新的堆栈,该堆栈初始包含所有的调用C函数所需要的参数值(Lua传给C函数的调用实参),并且C函数执行完毕后,会把返回 ...
- Lua中的常用函数库汇总
lua库函数 这些函数都是Lua编程语言的一部分, 点击这里了解更多. assert(value) - 检查一个值是否为非nil, 若不是则(如果在wow.exe打开调试命令)显示对话框以及输出错误调 ...
随机推荐
- SPOJ 10628 Count on a tree(Tarjan离线LCA+主席树求树上第K小)
COT - Count on a tree #tree You are given a tree with N nodes.The tree nodes are numbered from 1 to ...
- Codeforces Round #361 (Div. 2) C D
C 给出一个m 此时有 四个数 分别为x k*x k*k*x k*k*k*x k大于1 x大于等于1 要求求出来一个最小的值n 使其满足 这四个数中的最大值小于n 这四个数可能的组数为m 可以看出这四 ...
- MySQL Access denied for user root@localhost 解决方法
今天把本地开发的项目(ThinkPHP 3.2.3)移到虚拟机上(CentOS 6.6,LNMP 1.2,MySQL 5.6.23),配置好 MySQL 之后访问首页,出现: 此时 MySQL 的用户 ...
- 15.2 THE USE OF A LARGE REGISTER FILE
COMPUTER ORGANIZATION AND ARCHITECTURE DESIGNING FOR PERFORMANCE NINTH EDITION
- 申请UAC权限Manifest文件
申请UAC 高级权限用, 同时不会影响系统风格 <?xml version="1.0" encoding="UTF-8" standalone=" ...
- Construct Binary Tree from Inorder and Postorder Traversal || LeetCode
/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * s ...
- 【MySQL】MySQL压缩包安装遇到问题
电脑多加了一个内存条,就装了64位的系统,然后重装了一大波软件,然而到了MySQL,我作死,因为之前是用msi装的,据说还有一种压缩文件的装法,于是我就下了个安装包,按照网上的教程开始配置,完了之后遇 ...
- Altium Designer 文档信息设置以及模板制作
原理图文档模板制作方法一.在DXP原理图设计环境下,新建一个自由原理图文档.单击:文件→新建→原理图,或者使用快捷键Ctrl+N打开Files资源面板,在“新建”项目下的选择“Schematic Sh ...
- Linux用户配置sudo权限
Linux用户配置sudo权限 创建sudo权限用户 #useradd supope #passwd supope #visudo #supope ALL=(ALL) AL ...
- iptables nt
占位... 扩展 1.其实匹配扩展中,还有需要加-m引用模块的显示扩展,默认是隐含扩展,不要使用 -m 状态检测的包过滤-m state --state {NEW,ESTATBLISHED ...