lua中string.find()函数作用于汉字字符串
2024-10-18 20:22:34
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个字节。不过从观感来看,汉字标点确实比英文标点多占了一个字符位置。不过存贮中可没有存储那个多出来的空格。
最新文章
- scichart by Kline
- Flash导致弹出的div被隐藏
- magento app/design/adminhtml/default/default/template/sales/order/view/info.phtml XSS Vul
- DG配置实验
- 浏览器 CSS Hack 收集
- 利用zxing制作彩色,高容错,支持中文等UTF编码的QR二维码图片
- Oracle数据库 External component has thrown an exception
- 如何加入自定义WebControl
- docker-proxy 实现容器代理访问
- BZOJ 3391: [Usaco2004 Dec]Tree Cutting网络破坏( dfs )
- sublime Text3 新建文件时定义模块
- IO (二)
- git开发过程中的使用流程
- LeetCode108.将有序数组转换为二叉搜索树
- Spring Security原理与应用
- 四则运算level2
- How To: Implement a Major Upgrade In Your Installer
- NodeJS平台下的前后端文件共享
- document ready
- Codeforces Round #345 (Div. 1) A - Watchmen 容斥
热门文章
- <;script>;元素的位置
- Javascript备忘模式
- ios-model数据结构
- Docker三剑客之Swarm介绍
- iOS:命令行方式使用OSChina托管私有代码
- TestLink学习八:TestLink1.9.13与Mantis1.2.19集成
- 去除行内(inline/inline-block)元素之间的间距
- 计划将项目中使用entity framework的要点记录到改栏目下
- rosetta common sh: mpiCC command not found解决方法
- Unity NGUI 资源下载