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個字節。不過從觀感來看,漢字標點確實比英文標點多占了一個字符位置。不過存貯中可沒有存儲那個多出來的空格。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM